项目布局:
project/
pom.xml
npm-module/
pom.xml
mvn-module/
pom.xml
这对于mvn-module和npm-module的构建非常有效。但现在的问题是如何发布npm-module。Jenkins似乎只允许一个发布到nexus的后构建任务。
有没有办法解决这个问题?有人能解释一下如何设置Jenkins和反应堆构建pom文件,以将npm和maven模块都发布到nexus吗?
project/
pom.xml
npm-module/
pom.xml
mvn-module/
pom.xml
create pre step "execute shell" to set npm _auth and email fields
npm config set _auth authhashstring
npm config set email some@email.com
add deploy to the maven "goals and options"
clean deploy -Dmaven.test.failure.ignore=true -Dfullclean=true
add "settings file from filesystem"
config/maven-settings.xml
pom.xml
设置
在npm-module/pom.xml中使用frontend-maven-plugin,并添加执行安装node/npm和npm发布的操作。确保将发布附加到部署阶段。instructions足够好。或者,您可以使用exec插件在部署阶段执行npm publish
命令。
在mvn-module/pom.xml中添加distributionManagement/snapshotRepository,指定快照库位置。
maven settings.xml
设置
我们将带有用户名和密码的maven settings.xml文件放置在项目中的config目录中,如mvn-module/config/maven-settings.xml。虽然这并不理想,但我们可以用可以从maven/jenkins设置的属性替换用户名和密码。Jenkins将配置从此位置读取此文件。
package.json
设置
在npm-module/package.json中添加publishConfig/registry条目。
"publishConfig": {
"registry": "url/nexus/content/repositories/npm-snapshots/"
}
Nexus设置
npm-snapshots托管的存储库已设置为允许重新部署。这可能不是一个好主意,但对于正在进行的新开发(显然不适用于发布),这可能已经足够了,我只是试图使堆栈工作。现在我需要解决问题。
因此,在澄清了这一点之后,现在Jenkins构建将使用顶级多模块反应堆POM从一个Jenkins作业发布Java和Node模块到各自的存储库。