指定Maven编译器使用的JDK版本在哪里?

当我没有在我的pom.xml文件中定义如下内容时,在我的系统中为Maven定义了在编译时使用哪个版本的Java JDK(我的系统上安装了多个版本, JAVA_HOME指向其中一个版本) ?

    org.apache.maven.plugins maven-compiler-plugin 2.3.2  1.5 1.5     

Maven医生说

Compiler Plugin用于编译项目的源代码。 默认编译器是javac,用于编译Java源代码。 另请注意, 目前默认的源设置为1.5,默认目标设置为1.5,与您运行Maven的JDK无关。 如果要更改这些默认值,则应设置源和目标,如设置Java编译器的-source-target中所述。

参考: http : //maven.apache.org/plugins/maven-compiler-plugin/index.html

Maven的Jira Change默认源级别为1.5,这个有趣的线程


编辑:
Maven 3.0及更高版本的更新:

Compiler Plugin用于编译项目的源代码。 从3.0开始,默认编译器是javax.tools.JavaCompiler (如果您使用的是java 1.6)并且用于编译Java源代码。 如果要使用javac强制插件,则必须配置插件选项forceJavacCompilerUse。

资料来源: http : //maven.apache.org/plugins/maven-compiler-plugin/index.html

感谢nachteil指出它。

只需使用属性

  1.7 1.7 true  

从maven编译器插件doucemntation:

从3.0开始,默认编译器是javax.tools.JavaCompiler(如果您使用的是java 1.6)并且用于编译Java源代码。 如果要使用javac强制插件,则必须配置插件选项forceJavacCompilerUse。

我通过搜索引擎找到了这篇文章,我觉得值得更新。 另外: -target-source选项不会影响编译器本身,而是影响源代码处理和生成输出字节代码的方式。

您必须在maven setting.xml文件中定义属性。 该属性是您的第二个javac路径。(D:\ dev \ java \ ibm \ java1.6.0 \ bin \ javac)在pom文件中将此属性用于maven-compiler-plugin之后。

Setting.xml的

     IBM_JAVA  D:\dev\java\ibm\java1.6.0\bin\javac     IBM_JAVA   

的pom.xml

  maven-compiler-plugin  true ${IBM_JAVA_1_6_JAVAC} UTF-8 1.6 1.6