对maven编译器插件的困惑

时间:2017-06-15 14:51:07

标签: maven-compiler-plugin

我对maven编译器插件及其功能感到困惑。我有一个项目有几个模块。在我的顶级pom.xml中,我有一个部分

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <inherited>true</inherited>
    <configuration>
    <source>1.7</source>
    <target>1.7</target>
    </configuration>
</plugin>

我的理解是这指定了用于编译代码的JDK编译器版本,并且此部分由所有模块继承。我没有得到的是我的IntelliJ IDEA我仍然可以在设置中指定项目JDK,看起来这个设置会覆盖它。当我在IDE中运行maven install时,我可以确认它正在使用JDK 8中的javac进行编译。那么这部分到底做了什么?

1 个答案:

答案 0 :(得分:0)

你是对的; maven-compiler设置应该由子模块继承。

我不了解IntelliJ,但我可以告诉你,Eclipse会从maven配置中挑选和选择它想要的任何内容,而其余的则使用自己的设置。 因此,我希望IntelliJ可以做类似的事情吗?

测试此方法的最简单方法是运行mvn clean install via命令行,并查看&#34; wins&#34;。如果您使用1.8编译工件,则意味着您在Maven配置中丢失了某些内容,导致这些设置不会传播给子级。如果您使用1.7编译工件,则IntelliJ会执行此操作而不是maven-compiler-plugin