带有pom包装的Maven子模块?

时间:2015-08-21 10:56:42

标签: maven maven-3

有一个maven子模块(它没有任何自身的子模块)有pom包装吗?

在某些情况下有没有使用过这种情况?

如果不是,这是否意味着我所有的最后一级子模块都应该有一个不是pom的包装?

2 个答案:

答案 0 :(得分:1)

通常,存在与包装相关的特定生命周期,例如, “jar”包装将在“编译”阶段等运行maven-compiler-plugin。

如果您选择“pom”,那么默认生命周期非常有限 - 我想只有“安装”和“部署”插件才会绑定到各自的阶段。如果你想要更好地控制构建中发生的事情,你可以使用它。

通常,您只会对聚合器模块(具有子模块的模块)使用“pom”打包。

有关包装和Maven生命周期的更多详细信息,请参阅Maven: The Complete Reference - 4.2. Package-specific Lifecycles

作为一个真实的世界,我实际上在子模块中使用“pom”包装:

在某些项目中,我有一个名为“PROJECT-doc”的子模块,其中包含asciidoc文档,我将其编译为HTML和PDF作为构建的一部分。这些模块具有“pom”包装 - 没有要编译的Java代码,没有要构建的JAR,也没有要运行的单元测试 - 只需构建文档。我手动将“asciidoctor-maven-plugin”绑定到“generate-resources”,就是这样。

答案 1 :(得分:0)

我认为主要问题是在maven中使用包装pom - 这个问题在这里得到了解答:What is "pom" packaging in maven?

简短形式是:是的,你不应该有一个模块没有子模块使用打包pom