我有一个多模块的maven项目,我想让我的所有子模块都使用根pom.xml中指定的maven-compiler-plugin。我应该把maven-compiler-plugin声明放在哪里(在根pom.xml中):在<plugins>部分还是在<pluginManagement>部分?这个问题也与maven-release-plugin有关。
发布于 2012-12-20 03:29:04
这两个部分(plugins和pluginManagement)的用途略有不同。
第一个参数(plugins)用于指定项目(以及从父项目继承的所有子项目)的构建过程。如果您在本节中包含一些插件,则无论其类型如何,它都将在每个子项目中执行。
第二个(pluginManagement)用于为继承自父项目的所有项目指定通用插件设置(例如,插件版本和配置)。
说到你提到的两个插件。maven-compiler-plugin是一个默认插件,无论您是否指定它,它都将被执行。将它包含在pluginManagement中并在那里指定它的配置是有意义的。但是,默认情况下,maven-release-plugin不绑定到任何生命周期阶段。因此,如果您希望在所有子项目中执行它,则必须将其添加到plugins部分。
发布于 2012-12-20 03:15:53
这取决于你要找的是什么。如果您将它们包含在plugins部分中,那么它们将为所有父级POMs...including执行。如果您只希望子POMs执行插件目标,那么您应该将它们放在pluginManagement下。但是,在这种情况下,您必须在每个子POM中启用它们。
也就是说,要做的最简单的事情是先在plugins下尝试。如果没有构建失败,那么您就可以继续工作了。否则,您将需要将部分或全部迁移到pluginManagement。
https://stackoverflow.com/questions/13959358
复制相似问题