如何使用jenkins在同一个maven反应堆构建中发布npm和maven
有没有一种方法可以使用一个Maven2反应堆构建pom文件发布到Jenkins作业中的npm和maven存储库?reactor build pom文件包含两个模块,一个是标准jar模块,另一个是pom模块,它使用exec插件调用构建javascript项目的npm脚本目标。Jenkins被配置为在构建成功时将maven依赖项发布到公司nexus服务器 项目布局:如何使用jenkins在同一个maven反应堆构建中发布npm和maven,jenkins,maven-2,npm,build-process,nexus,Jenkins,Maven 2,Npm,Build Process,Nexus,有没有一种方法可以使用一个Maven2反应堆构建pom文件发布到Jenkins作业中的npm和maven存储库?reactor build pom文件包含两个模块,一个是标准jar模块,另一个是pom模块,它使用exec插件调用构建javascript项目的npm脚本目标。Jenkins被配置为在构建成功时将maven依赖项发布到公司nexus服务器 项目布局: project/ pom.xml npm-module/ pom.xml mvn-module/ pom.
project/
pom.xml
npm-module/
pom.xml
mvn-module/
pom.xml
这对于mvn模块和npm模块构建非常有效。但现在的诀窍是发布npm模块。Jenkins似乎只允许一个发布到nexus的后期构建任务
有办法做到这一点吗?谁能解释一下如何设置Jenkins和反应堆构建pom文件,该文件将npm和maven模块发布到nexus?我有一个答案,但很想听听其他想法 詹金斯设置
- 创建预步骤“执行shell”以设置npm\u身份验证和电子邮件字段
npm config set _auth authhashstring npm config set email some@email.com
- 将部署添加到maven“目标和选项”
- 添加“文件系统中的设置文件”
pom.xml
设置
在npm module/pom.xml中,使用前端maven插件并添加执行以安装node/npm和进行npm发布。确保发布已附加到部署阶段。这些都很好。或者,您可以使用exec插件在部署阶段执行npm publish
命令
在mvn module/pom.xml中,为快照回购位置添加distributionManagement/snapshotRepository
mavensettings.xml
Setup
我们将项目中带有用户名和密码的maven settings.xml放在config目录中,如下所示,mvn module/config/maven-settings.xml。这并不理想,但我认为我们可以用maven/jenkins设置的属性替换用户名和密码。Jenkins将被配置为从此位置读取此文件
package.json
Setup
在npm module/package.json中添加publishConfig/registry条目
"publishConfig": {
"registry": "url/nexus/content/repositories/npm-snapshots/"
}
Nexus设置
npm快照托管存储库已设置为允许重新部署。这可能不是一个好主意,但对于正在进行的新开发(显然不适用于发行版)来说可能已经足够了,我只是想让堆栈正常工作。我现在需要解决这些问题
因此,撇开这个警告不谈,现在jenkins build将使用顶级多模块reactor pom从一个jenkins作业向各自的存储库发布java和节点模块。更新:我将exec插件替换为,这使npm、gulp和grunt成为maven中的头等公民,但我仍然不知道如何获得“jenkins publish to maven repositories”后构建步骤也可以发布npm工件。
config/maven-settings.xml
"publishConfig": {
"registry": "url/nexus/content/repositories/npm-snapshots/"
}