如何让Maven识别我的JDK版本?

时间:2018-08-16 05:19:27

标签: java maven java-8 jetty osx-elcapitan

我正在使用OSx(El Capitain),并且正在运行Java 8

> ${JAVA_HOME}/bin/java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

this separate answer中所述,我需要使用maven编译器插件将Java版本转换为maven。

因此,我使用pom.xml占位符将以下内容添加到jdk.version

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <source>${jdk.version}</source>
        <target>${jdk.version}</target>
      </configuration>
    </plugin>
  </plugins>
</build>

但是,在运行mvn jetty:run

时,我仍然遇到以下错误
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project spark-example: Compilation failure
[ERROR] /Users/abhishek/git/abhishek/spark-example/src/main/java/Main.java:[5,34] lambda expressions are not supported in -source 1.5
[ERROR] (use -source 8 or higher to enable lambda expressions)

我知道我可以用1.8代替jdk.version进行硬编码,但是我觉得在其他项目中使用它时没有问题。

那里是否有我想念的东西,或者任何特定原因不起作用?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您想使用属性$ {jdk.version},但未在pom中定义它。

尝试在您的pom.xml中添加以下代码:

<properties>
  <jdk.version>1.8</jdk.version>
</properties>

请参阅properties in pom