我对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进行编译。那么这部分到底做了什么?
答案 0 :(得分:0)
你是对的; maven-compiler
设置应该由子模块继承。
我不了解IntelliJ,但我可以告诉你,Eclipse会从maven配置中挑选和选择它想要的任何内容,而其余的则使用自己的设置。 因此,我希望IntelliJ可以做类似的事情吗?
测试此方法的最简单方法是运行mvn clean install
via命令行,并查看&#34; wins&#34;。如果您使用1.8编译工件,则意味着您在Maven配置中丢失了某些内容,导致这些设置不会传播给子级。如果您使用1.7编译工件,则IntelliJ会执行此操作而不是maven-compiler-plugin
。