![](/img/trans.png)
[英]Jenkins Deploy Artifacts to Nexus using Deploy to Maven Repository
[英]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 deploy
的mvn deploy
应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.