使用Maven在多模块项目中构建子模块

有时由于历史原因,一个仓库里包含多个maven项目,如果只需要构建某个子模块要怎么做呢?mvn构建有一些高级参数,可用于多模块项目构建子模块,先来看看以下几个参数。

Name options info example
Projects list -pl,–projects Build specified reactor projects instead of all projects. mvn install -pl A,B
Also Make(Upstream Dependencies) -am,–also-make If project list is specified, also build projects required by the list mvn install -pl A,B -am
Also Make (Downstream) Dependencies -amd,–also-make-dependents If project list is speciied, also build projects that depend on projects on the list mvn install -pl A,B -amd

在我们构建多模块的项目时,如果在项目的根目录下执行:

1
mvn clean package

所有模块都会打包,即使代码没有更新的项目,这样明显会浪费资源和时间。

那么如果只想构建单个模块的话,根据上面的几个参数,加入我们要构建的模块名称叫exp1,同时想让它自动解决依赖,那在项目的根目录下,执行如下命令:

1
mvn clean package -pl exp1 -am