我们正在使用maven.我想设置基础架构,以便自动构建的工件将转到Nexus存储库.然后他们可以被开发人员使用.
我已经为我们的项目设置了一份Jenkins工作.我在同一台服务器上安装了Nexus.
在开发人员的PC上,我将默认maven设置复制到添加此部分的C:\ Users {user} .m2\settings.xml.参考文献:
配置Maven使用单个Nexus
Maven设置参考
nexus * http://myserver:8081/nexus/content/groups/public
(我只是通过Nexus书来关注Repository Management)
我的下一步应该是什么?詹金斯应该有工作mvn install
吗?如何为公司工件创建Nexus存储库?
要将工件部署到Nexus,您需要在pom中包含distributionManagement部分.Nexus附带了已为快照和版本设置的特定存储库.您应该为每个提供正确的路径,以便maven将快照和发布工件部署到正确的存储库.然后,每当您部署工件时 - 通常使用mvn deploy
或使用maven发布插件,工件将在那里部署.Nexus默认启用了写入身份验证,因此您需要确保将具有正确凭据的服务器部分添加到将要部署工件的任何人的settings.xml中.Jenkins可以像任何其他用户一样对待.如果你有它deploy
的构建,那么每个构建都将部署到Nexus.还有一个用于部署工件的构建后操作,以防您希望稍后在Jenkins作业中发生.
我不需要对我的项目pom.xml进行任何更改.相反,在jenkins"Post-build Actions"中,我选择了"将工件部署到Maven存储库",然后选择"Advanced"并将Repository URL设置为http://nexusserver:8081/nexus/content/repositories/releases
,并将Repository ID设置为deploymentRepo
.
在~/.m2/settings.xml
对詹金斯机加我
... deploymentRepo deployment deployment123
更新 pom.xml
... ... deploymentRepo Internal Releases http://nexusserver:8081/nexus/content/repositories/releases
然后为maven ~/.m2/settings.xml
添加(这是Nexus中的默认部署用户)
deploymentRepo deployment deployment123
然后 mvn deploy
然后可以在任何项目中使用已部署的工件,就像标准工件一样.在这种情况下添加到pom.xml
deploymentRepoReleases Releases (Nexus) http://nexusserver:8081/nexus/content/repositories/releases/ deploymentRepoSnapshots Snapshots (Nexus) http://nexusserver:8081/nexus/content/repositories/snapshots/
更新:稍后我们离开了Snapshot存储库并使用maven-release-plugin
它只需要发布类型的存储库.