带有 pom 包装的 Maven 子模块?
Maven submodule with pom packaging?
有一个 Maven 子模块(它本身没有任何子模块)有一个 pom
包装有意义吗?
在某些情况下这样做有什么用吗?
如果不是,是否意味着我所有的最后一级子模块都应该有一个不是 pom
的包装?
我认为主要问题是在 Maven 中使用包装 pom
- 这个问题在这里得到了回答:What is "pom" packaging in maven?
简短形式是:是的,你不应该有一个模块 没有 使用包装 pom
.
的子模块
通常,包装有一定的生命周期,例如"jar" 打包将 运行 maven-compiler-plugin 在 "compile" 阶段等
如果您选择 "pom",那么默认生命周期非常有限 - 我猜只有 "install" 和 "deploy" 插件绑定到各自的阶段。如果您想更好地控制构建中发生的事情,您可能会使用它。
通常,您只会对聚合器模块(具有子模块的模块)使用 "pom" 打包。
关于打包和Maven生命周期的更多细节,可以参考Maven: The Complete Reference - 4.2. Package-specific Lifecycles
作为我在子模块中实际使用 "pom" 打包的真实世界:
在某些项目中,我有一个名为 "PROJECT-doc" 的子模块,其中包含我编译为 HTML 的 asciidoc 文档和作为构建一部分的 PDF。这些模块具有 "pom" 包装 - 无需编译 Java 代码,无需构建 JAR,也无需 运行 单元测试 - 仅构建文档。我手动将 "asciidoctor-maven-plugin" 绑定到 "generate-resources" 就是这样。
有一个 Maven 子模块(它本身没有任何子模块)有一个 pom
包装有意义吗?
在某些情况下这样做有什么用吗?
如果不是,是否意味着我所有的最后一级子模块都应该有一个不是 pom
的包装?
我认为主要问题是在 Maven 中使用包装 pom
- 这个问题在这里得到了回答:What is "pom" packaging in maven?
简短形式是:是的,你不应该有一个模块 没有 使用包装 pom
.
通常,包装有一定的生命周期,例如"jar" 打包将 运行 maven-compiler-plugin 在 "compile" 阶段等
如果您选择 "pom",那么默认生命周期非常有限 - 我猜只有 "install" 和 "deploy" 插件绑定到各自的阶段。如果您想更好地控制构建中发生的事情,您可能会使用它。
通常,您只会对聚合器模块(具有子模块的模块)使用 "pom" 打包。
关于打包和Maven生命周期的更多细节,可以参考Maven: The Complete Reference - 4.2. Package-specific Lifecycles
作为我在子模块中实际使用 "pom" 打包的真实世界:
在某些项目中,我有一个名为 "PROJECT-doc" 的子模块,其中包含我编译为 HTML 的 asciidoc 文档和作为构建一部分的 PDF。这些模块具有 "pom" 包装 - 无需编译 Java 代码,无需构建 JAR,也无需 运行 单元测试 - 仅构建文档。我手动将 "asciidoctor-maven-plugin" 绑定到 "generate-resources" 就是这样。