[英]Maven project can't find dependency when deploy on Google Cloud Build
我會盡量簡短
我的問題是 Cloud Build 沒有在應有的位置尋找我的項目的父級。 我解釋一下我安裝了什么:
一方面,我在 Artifact Registry 中上傳了一個類型為“POM”的 Maven 項目。 該項目已成功上傳,因為我已經能夠將其用作當前項目的依賴項
另一方面,我有一個 Maven 項目和 Spring Boot,它使用上傳到 Artifact Registry 的項目作為父項目
<parent>
<groupId>blorks.corp</groupId>
<artifactId>pom-repo</artifactId>
<version>1.0</version>
</parent>
問題是,雖然如果我在我的 PC 上啟動我的項目,我可以使用依賴項,但是當我嘗試使用 Cloud Build 部署它時,它無法找到依賴項
當我在我的 PC 上構建我的應用程序時,我可以在控制台中看到正在從 Artifact Repository 下載父級
但是當我嘗試使用 Cloud Build 部署應用程序時,它沒有在 Artifact Repository 中查找依賴項,而是在 Maven 中央存儲庫中查找它
我將我的項目代碼上傳到 Bitbucket,Cloud Build 嘗試構建我的 bitbucket 存儲庫的“master”分支
為了提供更多信息,我放置了我嘗試部署的項目的 POM 文件
<parent>
<groupId>blorks.corp</groupId>
<artifactId>pom-repo</artifactId>
<version>1.0</version>
</parent>
<dependencies>
<dependency>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.1.4</version>
</dependency>
</dependencies>
<distributionManagement>
<snapshotRepository>
<id>artifact-registry</id>
<url>artifactregistry://europe-west1-maven.pkg.dev/blorks-corp-gaming-wow/pom-repo</url>
</snapshotRepository>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://europe-west1-maven.pkg.dev/blorks-corp-gaming-wow/pom-repo</url>
</repository>
</distributionManagement>
<repositories>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://europe-west1-maven.pkg.dev/blorks-corp-gaming-wow/pom-repo</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<extensions>
<extension>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.1.4</version>
</extension>
</extensions>
</build>
我有點迷路了。 我不知道錯誤可能來自哪里...... Maven? 雲構建? 神器注冊表?
要將包添加到存儲庫,請使用mvn deploy
和mvn release
。
Artifact Registry Wagon 提供程序必須包含在核心擴展文件中才能正確部署引用父項的 Maven 項目,如身份驗證要求中所示。
要上傳在 Maven 之外創建的資產,請使用mvn deploy:deploy-file
。
例如,此示例命令將 example/external.jar 及其項目文件 example/pom.xml 部署到 us-central1-maven.pkg.dev/my-project/my-repo 存儲庫。
mvn deploy:deploy-file \
-Durl=artifactregistry://us-central1-maven.pkg.dev/my-project/my-repo \
-DpomFile=example/pom.xml -Dfile=example/external.jar
使用第三方應用程序連接到存儲庫時,您必須首先使用 Artifact Registry 進行身份驗證。
如果您的項目需要解決這些依賴關系,您必須使用核心擴展技術來確保 Maven 可以識別父 POM 文件和插件。
使用以下信息在您的項目中創建文件“$maven.projectBasedir/.mvn/extensions.xml”。 貨車由 extension> 元素定義。
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
<extension>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.1.4</version>
</extension>
</extensions>
Maven 現在可以使用 Artifact Registry 來解決父或插件依賴關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.