2017-08-08 142 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应该能够正常工作。