我对maven编译器插件以及它做了什么感到困惑。我有一个项目有几个模块。在我上面的pom.xml我有一个部分maven编译器插件混淆
<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安装时,我可以确认它使用JDK 8中的javac进行编译。那么这部分究竟做了什么?
但我只在我的系统上安装了JDK 8。看起来,即使我在编译插件中设置了版本,maven仍然可以正常运行。所以这个插件是无用的? – fhcat
JDK 8 _can_编译针对JDK 7的源代码,因此无关紧要,只有JDK 8。 插件并非无用;如果你想在没有IntelliJ的情况下(例如通过Jenkins的CI)在外部运行你的构建,那么它就会发挥作用。 – Andrei