mvn -pl 是什么意思?

52

这个命令具体会发生什么:

mvn -pl ABC  –am  -amd?

它是否编译代码?

我问这个问题的原因是我故意放了一个无效的文件,当我运行mvn -pl ABC -am -amd选项时,我得到了成功的结果,我很困惑为什么Maven没有抱怨错误的文件?

但如果我使用mvn install命令,就会出现错误!

4个回答

61

-pl--projects 命令可以让你选择特定的项目来应用你的目标(例如 clean install),这样就可以节省在大型项目上等待完整构建所需的时间,如果你只需要构建几个模块。

您可能需要查看以下部分:


谢谢Jhurtado,实际上我正在使用这个完整的命令 mvn -pl Abc:Xyz –am -amd . 项目ABC:XYZ中有一个无效文件,但maven没有抱怨。 - maven-dev

17
  • -pl 参数只编译指定模块而不是整个项目(在这种情况下,只编译ABC模块)。
  • -am 参数可以让 maven 找出目标模块依赖的其他模块并一起编译(在这种情况下,编译ABC模块所依赖的模块)。

1
另外,“mvn -pl -my-submodule”将构建除您不想要的模块之外的所有模块。 - LovaBill

4

如果你输入mvn -pl,并且不给-pl参数任何参数,那么你要求的是maven什么也不做。

-pl假定你在一个有多个模块的项目中,并且想要构建它们的一个子集。而你刚刚请求了空的子集。


实际上,我正在使用完整的命令mvn -pl Abc:Xyz –am -amd . 项目ABC:XYZ中存在一个无效文件,当我运行它时,Maven不会抱怨。 - maven-dev

-5

你实际上没有给它一个运行目标。mvn -pl Abc:Xyz -am -amd 有两个问题。
首先,-amd 意味着 -am,所以你不需要两个。
其次,你没有给它一个运行目标,比如 install、package、test 或 compile。


6
“-amd implies -am, so you don't need both” 的翻译是“-amd包含-am,因此你不需要两个都用”。我认为这并不正确。http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode 提供了一个示例,其中两者都被使用。而且,在我的系统中,“-am”会触发构建,而“-amd”则不会。我对此还比较新手,但据我所知,“-am”会构建你的项目依赖的项目,“-amd”则会构建依赖于你的项目所依赖的项目! - funkybro
3
-am-amd 相对应,是指在使用命令 mvn -pl abc 时:-am 会同时构建所有依赖于模块 abc 的模块;而 -amd 会同时构建所有依赖于模块 abc 的模块。 - Kutzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接