有没有办法使用一个Maven2 reactor构建pom文件发布到Jenkins作业中的npm和maven存储库? reactor构建pom文件包含两个模块,一个是标准jar模块,另一个是pom模块,它使用exec插件调用构建javascript项目的npm脚本目标 . Jenkins配置为在构建成功时将maven依赖项发布到公司nexus服务器 .
项目布局:
project/
pom.xml
npm-module/
pom.xml
mvn-module/
pom.xml
这适用于mvn-module和npm-module构建 . 但现在的诀窍是发布npm-module . Jenkins似乎只允许一个发布到nexus post-build任务 .
有没有办法做到这一点?任何人都可以解释如何设置Jenkins和反应堆构建pom文件,将npm和maven模块发布到nexus?
1 回答
我有一个答案,但很想听到其他的想法 .
Jenkins Setup
npm config set _auth authhashstring
npm config设置电子邮件some@email.com
clean deploy -Dmaven.test.failure.ignore = true -Dfullclean = true
配置/行家-settings.xml中
注意:使用部署目标而不是jenkins“部署工件到maven”post post,因为它不使用maven所以你的npm目标不会被调用 .
pom.xml Setup
在npm-module / pom.xml中使用frontend-maven-plugin并添加执行来安装node / npm和npm publish . 确保将发布附加到部署阶段 . instructions足够好了 . 或者您可以使用exec插件在部署阶段执行npm publish命令 .
在mvn-module / pom.xml中,为快照仓库位置添加distributionManagement / snapshotRepository .
maven settings.xml Setup
我们将maven settings.xml和项目中的用户名和密码放在config目录中,如mvn-module / config / maven-settings.xml . 这不是理想的,但我们可以用maven / jenkins替换可以设置的用户名和密码 . Jenkins将配置为从此位置读取此文件 .
package.json Setup
在npm-module / package.json中添加publishConfig / registry条目
Nexus Setup
npm-snapshots托管存储库设置为允许重新部署 . 这可能不是一个好主意,但对于正在进行的新开发可能已经足够好了(显然不适用于版本)而且我只是想让堆栈正常工作 . 我现在需要解决这些问题 .
因此,除了这个警告之外,现在jenkins构建将使用顶级多模块reactor pom从一个Jenkins作业将java和节点模块发布到它们各自的存储库 .