簡體   English   中英

Jenkins-將工件部署到Maven存儲庫

[英]Jenkins - deploy artifacts to Maven repository


我有一個基本的Springboot Maven項目,我希望能夠部署它並在本地工作時進行API調用。
我有一台裝有Jenkins的遠程linux機器,並且能夠正確構建我的應用程序。 現在,我想將此構建版本部署在同一Linux機器的某個特定文件夾/deploy
現在,我在Jenkins上添加了一個Post Build Action ,以將工件部署到具有以下參數的Maven存儲庫 在此處輸入圖片說明 現在,我沒有對pom.xml或maven settings.xml進行任何更改。 我得到的錯誤如下:

[INFO] Deployment in http://localhost:8080/deploy (id=test2,uniqueVersion=true)
Deploying the main artifact reag.login-0.0.1-SNAPSHOT.jar
Downloading: http://localhost:8080/deploy/reag/login/reag.login/0.0.1-SNAPSHOT/maven-metadata.xml
ERROR: Failed to retrieve remote metadata reag.login:reag.login:0.0.1-SNAPSHOT/maven-metadata.xml: Could not transfer metadata reag.login:reag.login:0.0.1-SNAPSHOT/maven-metadata.xml from/to deploymentRepo (http://localhost:8080/deploy): Access denied to: http://localhost:8080/deploy/reag/login/reag.login/0.0.1-SNAPSHOT/maven-metadata.xml , ReasonPhrase:Forbidden.
org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to retrieve remote metadata reag.login:reag.login:0.0.1-SNAPSHOT/maven-metadata.xml: Could not transfer metadata reag.login:reag.login:0.0.1-SNAPSHOT/maven-metadata.xml from/to deploymentRepo (http://localhost:8080/deploy): Access denied to: http://localhost:8080/deploy/reag/login/reag.login/0.0.1-SNAPSHOT/maven-metadata.xml , ReasonPhrase:Forbidden.

我正在使用的計算機受用戶名和密碼保護,我嘗試將它們放在settings.xml文件中,但沒有任何變化。 有誰知道使該過程正常進行的步驟?
提前致謝。

本地工件部署是通過mvn clean install完成的。 install目標會將您的工件復制到本地Maven存儲庫(默認為[USER_HOME] /。m2 / repository)。

如果要將工件部署到Nexus Maven存儲庫等其他服務,則需要在settings.xml部署並提供該機器的憑據,甚至更好地為機器設置私鑰/公鑰身份驗證。

我認為Jenkins正在嘗試進行遠程部署,這僅在您在計算機(例如Nexus)上運行Maven存儲庫時才有效

在Maven中,“部署”的意思是“將構建的工件及其元數據(例如pom文件)上傳到存儲庫管理器。

並不意味着“神器復制到任何你想要的位置。”

因此,正如@funfried所提到的,您實際上需要運行一個存儲庫管理器。

在這種情況下,以下是設置Maven配置的方法。

Maven通過id元素將憑證鏈接到服務器。

您的settings.xml文件將設置您的憑據,如下所示:

<servers>
    <server>
        <id>newhope-nexus</id>
        <username>steve</username>
        <password>{1T7Jmp/PBoQH4cvFjZDTaDe/F/Z+D9rJ925rf+3H1LY=}</password>
    </server>
</servers>

然后,您的項目模型(項目pom或父pom)應該定義它的distributionManagement

<distributionManagement>
    <repository>
        <id>newhope-nexus</id>
        <url>http://newhope:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>newhope-nexus</id>
        <url>http://newhope:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

請注意,所有ID均匹配。

然后,從詹金斯(Jenkins) mvn deploymvn deploy應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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