在我的 Mac 上,我正在尝试编译一些我编写的 Java 8 源代码。在 Eclipse 中编译正常,但在 Maven 中编译失败。
我收到多个以下形式的错误:
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/admin/eclipse/workspaces/default/Java8/src/main/java/language/utilities/MapDemo.java:[14,33] lambda expressions are not supported in -source 1.7
(use -source 8 or higher to enable lambda expressions)
运行 mvn -v 会产生:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /Users/admin/apache-maven-3.3.9
Java version: 1.8.0_91, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre
Default locale: en_IE, platform encoding: UTF-8
OS name: "mac os x", version: "10.12", arch: "x86_64", family: "mac"
运行导出命令显示 JAVA_HOME 变量设置为:
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home"
这个“-source”属性是什么?如果我的 Java 版本是 Java 8,为什么还需要设置它?
最佳答案
设置
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
您不应该在 settings.xml
中设置此项,因为您会强制其他人更改他们的 settings.xml
并默认在他们的所有其他项目中使用 JDK8!
关于java - 我的 Java 8 源代码的 Maven 编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39984590/