簡體   English   中英

Maven 項目在 Google Cloud Build 上部署時找不到依賴項

[英]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 deploymvn 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM