如何配置我的Maven Jenkins作业以仅构建我已签入代码的模块?

Dav*_*ave 5 maven-3 maven multi-module jenkins jenkins-plugins

我正在使用Maven 3.5,Git和Jenkins 2.138.1.我为我的多模块Maven项目设置了Maven Jenkins工作.通常情况下,如果我想在Maven中构建一个模块,无论它有什么影响,我都可以运行

mvn install -pl myModule -am
Run Code Online (Sandbox Code Playgroud)

从命令行.我想要做的是配置我的Jenkins作业只构建受影响的Maven模块及其依赖项,如果有人检查特定模块的代码,从而加快我的构建.如何在Jenkins中配置它?

roh*_*mas 4

如果您使用 FreeStyle Porject:
您将需要安装Maven Project Plugin
然后有一个选项“仅增量构建构建更改的模块

在此输入图像描述

正如它所指出的,SCM 将处理哪些模块已被修改,并且将仅构建这些模块。

如果是管道,则可以使用您提到的上述命令。IE

 mvn install -pl myModule -am
Run Code Online (Sandbox Code Playgroud)

问题是知道签入时要构建哪些模块

mvn install -amd -pl $(git status | grep -E "modified:|deleted:|added:" | awk '{print $2}' | cut -f1 -d"/")
Run Code Online (Sandbox Code Playgroud)

上面的命令应该可以工作。

如果您要修改 pom.xml
您将需要 Maven 增量插件

下面的 URL 详细解释了如何使用 Maven 来实现此目的: Jenkins Building a Product包含许多 Maven 项目?(使用 Jenkins Pipeline 插件?)

希望能帮助到你 :)