Ben*_*min 12 build pom.xml maven-3 maven jenkins
我有一个关于如何设置Jenkins和maven 3的简单问题.
为简单起见,我们说有四个项目:
模型不具有依赖性
共享取决于模型的
服务器依赖于公共和型号
前端取决于型号
我想要实现的是,基于Model的成功构建会触发所有项目的新构建,这些项目在其pom中依赖于Model(此处为Common,Server和Frontend)
如果Common失败,则无需构建Server.
在上面的例子中,似乎我可以通过在Model和Commons上手动设置依赖项目来解决这个问题,但是这个信息已经可以在每个项目(服务器和前端)的pom文件中找到,这使我得出结论/希望Jenkins应该是能够自己解决这个问题.
Jenkins可以通过解析Jenkins中定义的每个项目上的pom来推导依赖树,并自动执行某种最佳构建顺序/依赖项处理,或者我必须设置"上游项目构建时构建块"和"其他项目构建后构建"建立[依赖项目清单]"如上所述?
我正在使用Jenkins版本1.473和Maven 3.
我们的maven项目pom不使用父标签或模块标签.
/本杰明
假设您想要坚持使用4个单独的构建而不是多模块构建,那么在4个项目中的每一个中执行它的方法都会检查构建触发器下的框
"构建SNAPSHOT依赖项时构建"
然后你签入模型,jenkins基于SVN轮询启动该项目的构建,当构建完成时,它看到common对模型有依赖性,因此它触发了common的构建,看它是否仍然构建更新的模型.
必须将jenkins作业创建为maven作业才能存在此选项.它不适用于自由风格的项目,即使它们运行的脚本恰好调用了maven.
解决这种问题的最佳解决方案是创建一个多模块构建,其结构如下:
root (pom.xml)
+--- model (pom.xml)
+--- commons (pom.xml)
+--- server (pom.xml)
+--- frontend (pom.xml)
Run Code Online (Sandbox Code Playgroud)
在每个模块中,例如在 commons 中,您定义对模型模块等的依赖关系。构建顺序将由 Maven 自动完成。
对于此类项目,您可以简单地转到根目录并执行以下操作:
mvn clean package
Run Code Online (Sandbox Code Playgroud)
您还可以使用:
mvn --pl --am server
Run Code Online (Sandbox Code Playgroud)
这将自动构建服务器以及所有依赖的模块。
| 归档时间: |
|
| 查看次数: |
14214 次 |
| 最近记录: |