【问题标题】:How do I get maven to recognize my jdk version?如何让 maven 识别我的 jdk 版本?
【发布时间】:2019-01-23 00:00:53
【问题描述】:

我在 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。

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

<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,但我觉得我已经看到它在其他项目中使用没有问题。

那里有我遗漏的东西,或者有什么具体原因这不起作用?

谢谢!

【问题讨论】:

  • 你感觉你以前见过${jdk.version}吗?也许您的意思是 ${java.version},标准 Java 系统属性?
  • 您是否设置了jdk.version 属性?如果您在配置中明确指定 1.8 是否有效? &lt;configuration&gt; &lt;source&gt;1.8&lt;/source&gt; &lt;target&gt;1.8&lt;/target&gt; &lt;/configuration&gt;

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


【解决方案1】:

我认为你想使用属性 ${jdk.version},但它没有在 pom.xml 中定义。

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

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

请参考properties in pom。

【讨论】:

  • 哇,谢谢!我对 pom 的工作方式仍然很陌生。这对我来说很有意义。
猜你喜欢
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
相关资源
最近更新 更多