maven属性部分中的JDK规范

时间:2014-08-29 22:06:27

标签: java maven

我看到一个包含此部分的maven文件:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.executable>${env.OPENSHIFT_WILDFLY_DIR}usr/lib/jvm/jdk1.8.0_05/bin/javac</maven.compiler.executable>
    <maven.compiler.fork>true</maven.compiler.fork>
</properties>

在我看来,它需要安装JDK 1.8才能构建项目。但是,机器上仅安装了JDK 1.7。你能解释为什么这个工作得很好吗?我很困惑。感谢。

3 个答案:

答案 0 :(得分:0)

我注意到你有一个指定的可执行文件,指向1.8 ......可以解释这个谜吗?

答案 1 :(得分:0)

maven.compiler.executable属性的值表明您的项目将基于RedHat的OpenShift Cloud设备构建,并且该设备可能已安装JDK 8。至于为什么项目本地运行没有问题,我猜它不包含任何* .java文件,因此永远不会调用编译器。

除非您的演示需要Java 8,否则更改1.8 - &gt; 1.7并删除maven.compiler.executable属性。然后Maven将调用您在PATH中碰巧拥有的任何javac。

答案 2 :(得分:0)

如果您希望Maven检查JDK版本,则需要使用Maven Enforcer插件:http://maven.apache.org/enforcer/enforcer-rules/requireJavaVersion.html