【问题标题】:how to publish npm and maven in same maven reactor build using jenkins如何使用 jenkins 在同一个 maven reactor 构建中发布 npm 和 maven
【发布时间】:2015-05-27 18:05:44
【问题描述】:

有没有办法使用一个 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 模块。 Jenkins 似乎只允许一项发布到 nexus 构建后任务。

有没有办法做到这一点?谁能解释如何设置 Jenkins 和一个将 npm 和 maven 模块发布到 nexus 的反应堆构建 pom 文件?

【问题讨论】:

  • 更新:我用 github.com/eirslett/frontend-maven-plugin 替换了 exec 插件,这使得 npm、gulp 和 grunt 在 maven 中成为一等公民,但我仍然不知道如何让“jenkins 发布到 maven 存储库”发布构建步骤以发布 npm 工件。

标签: jenkins maven-2 npm build-process nexus


【解决方案1】:

我有一个答案,但很想听听其他想法。

Jenkins 设置

  • 创建前置步骤“执行 shell”以设置 npm _auth 和电子邮件字段

    npm config set _auth authhashstring  
    npm config set email some@email.com  
    
  • 将部署添加到 maven“目标和选项”

    clean deploy -Dmaven.test.failure.ignore=true -Dfullclean=true  
    
  • 添加“来自文件系统的设置文件”

    config/maven-settings.xml  
    

注意:使用部署目标而不是 jenkins“将工件部署到 maven”发布步骤,因为它不使用 maven,因此您的 npm 目标不会被调用。

pom.xml 设置

在 npm-module/pom.xml 中使用 frontend-maven-plugin 并添加执行以安装 node/npm 和用于 npm 发布。确保发布附加到部署阶段。 instructions 已经足够好了。或者你可以使用exec插件在部署阶段执行npm publish命令。

在 mvn-module/pom.xml 中为您的快照存储库位置添加 distributionManagement/snapshotRepository。

ma​​ven settings.xml 设置

我们将项目中包含用户名和密码的maven settings.xml放在一个config目录下,像这样,mvn-module/config/maven-settings.xml。这并不理想,但我认为我们可以替换用户名和密码 w/ 可以从 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 模块发布到各自的存储库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2016-06-18
    • 2013-10-13
    • 2013-09-06
    • 2013-02-21
    相关资源
    最近更新 更多