我看到一个包含此部分的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。你能解释为什么这个工作得很好吗?我很困惑。感谢。
答案 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