Java 将父pom中使用的Maven插件版本重写为主pom中的新版本

Java 将父pom中使用的Maven插件版本重写为主pom中的新版本,java,maven,maven-compiler-plugin,Java,Maven,Maven Compiler Plugin,从事多模块maven项目。在父pom中使用maven编译器插件,如下所示: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> &

从事多模块maven项目。在父pom中使用maven编译器插件,如下所示:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <source>${java.version}</source>
      <target>${java.version}</target>
    </configuration>
  </plugin>

希望在主项目pom中使用3.1,因为它支持增量编译。在父pom中没有写入权限。如何在主项目pom中配置插件以使用新版本?

您可以覆盖子模块中的插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
      <source>${java.version}</source>
      <target>${java.version}</target>
    </configuration>
  </plugin>

定义一个。。在项目中阻塞,只需在我离开的地方给出groupId/artifactId/version。。当然是新版本。。不需要定义其他东西。除此之外,我强烈建议升级到maven编译器插件3.8.1的最新版本。。。see in或in plugins SectionPluginMgmt旨在配置从该插件继承的项目构建。。。所以我会说插件here@CodeScale可以用来简单地覆盖插件的版本。给定的示例覆盖了不需要覆盖的内容。这就是pluginManagement的原因。@khmarbaise pluginmgmt应该在父pom.xml上使用,我同意这一点。但对于子模块,我刚才说使用插件似乎更好地覆盖父插件定义