我正在使用Maven 3.5,Git和Jenkins 2.138.1。我为多模块Maven项目设置了Maven Jenkins职位。通常,如果我只想在Maven中构建一个模块,无论它影响什么,我都可以运行
mvn install -pl myModule -am
从命令行。我想做的是将Jenkins作业配置为仅在有人签入特定模块的代码时才构建受影响的Maven模块及其依赖项,从而加快了构建速度。如何在Jenkins中进行配置?
答案 0 :(得分:1)
如果您使用的是FreeStyle项目:
您将需要安装 Maven项目插件
然后有一个选项“ 仅增量构建仅构建已更改的模块”
状态说明SCM将处理已修改的模块,并将仅构建那些模块。
在使用Pipeline的情况下,可以使用您提到的上述命令。即
mvn install -pl myModule -am
问题在于,在签到时知道要构建哪些模块
mvn install -amd -pl $(git status | grep -E "modified:|deleted:|added:" | awk '{print $2}' | cut -f1 -d"/")
上面的命令应该起作用。
如果您要修改pom.xml
您将需要 Maven增量插件
下面的URL提供了有关如何使用maven实现此目的的详细说明: Jenkins building a product consisting of many Maven projects? (with Jenkins Pipeline plugin?)
希望它会有所帮助:)
答案 1 :(得分:0)
这是老字号了,但https://blog.soebes.de/blog/2016/08/12/maven-incremental-module-build/应该对您的事业有所帮助,并应归功于Beratung Schulung:)