使用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 |