2017-08-08 74 views
0


我有一個基本的Springboot Maven項目,我希望能夠部署它並進行API調用,因爲它在本地工作。
我有一臺遠程linux機器,它上面有Jenkins,我能夠正確構建我的應用程序。現在我想在同一個linux機器上部署這個版本,在某個文件夾/deploy
現在我已經在詹金斯增加了後生成操作部署文物,具有下列參數Maven倉庫enter image description here 而現在我沒有讓我的pom.xml或我的行家settings.xml任何改變。 ,我得到的錯誤是:詹金斯 - 部署工件到Maven存儲庫

[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文件,但沒有任何變化。有誰知道哪些是使這個過程工作的步驟?
在此先感謝。

+0

問題出在這裏:'拒絕訪問:http:// localhost:8080/deploy/reag/login/reag.login/0.0.1-SNAPSHOT/maven-metadata。xml,ReasonPhrase:Forbidden.' ...檢查您的憑證數據是否正確... – khmarbaise

+0

順便說一句:爲什麼不使用Maven來完成這項工作? – khmarbaise

回答

0

本地工件部署由mvn clean install完成。 install目標將您的工件複製到您的本地Maven存儲庫(默認[USER_HOME] /。m2 /存儲庫)。

如果您想將工件部署到其他服務(如Nexus Maven Repository),則需要在您的settings.xml中部署並提供該機器的憑證,或者甚至爲機器設置專用/公鑰認證。

我認爲詹金斯是試圖如果你在你的機器上運行Maven倉庫(例如Nexus)進行遠程部署,這是唯一的工作

0

「部署」在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 deploy應該能夠正常工作。