gpt4 book ai didi

java - 源值 1.5 的错误已过时,将在未来版本中删除

转载 作者:行者123 更新时间:2023-11-30 02:27:56 25 4
gpt4 key购买 nike

我使用 scala-maven-plugin 来编译一个包含 scala 和 java 代码的项目。我已经将源和目标设置为1.7,但不知道为什么maven仍然使用1.5。

这是我在 pom.xml 中的插件

<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<id>eclipse-add-source</id>
<goals>
<goal>add-source</goal>
</goals>
</execution>
<execution>
<id>scala-compile-first</id>
<phase>process-resources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>scala-test-compile-first</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
<execution>
<id>attach-scaladocs</id>
<phase>verify</phase>
<goals>
<goal>doc-jar</goal>
</goals>
</execution>
</executions>
<configuration>
<scalaVersion>${scala.version}</scalaVersion>
<recompileMode>incremental</recompileMode>
<useZincServer>true</useZincServer>
<args>
<arg>-unchecked</arg>
<arg>-deprecation</arg>
<arg>-feature</arg>
</args>
<jvmArgs>
<jvmArg>-Xms1024m</jvmArg>
<jvmArg>-Xmx1024m</jvmArg>
<jvmArg>-XX:PermSize=${PermGen}</jvmArg>
<jvmArg>-XX:MaxPermSize=${MaxPermGen}</jvmArg>
</jvmArgs>
<javacArgs>
<javacArg>-source</javacArg>
<javacArg>1.7</javacArg>
<javacArg>-target</javacArg>
<javacArg>1.7</javacArg>
<javacArg>-Xlint:all,-serial,-path,-options</javacArg>
</javacArgs>
</configuration>
</plugin>

这是我看到的输出错误

[warn]   implicit def toDisplayTraversableFunctions[T <: Product](traversable: Traversable[T]): DisplayTraversableFunctions[T] = new DisplayTraversableFunctions[T](traversable)
[warn] ^
[warn] two warnings found
[error] /Users/jzhang/github/zeppelin/spark/src/main/java/org/apache/zeppelin/spark/DepInterpreter.java:158: error: diamond operator is not supported in -source 1.5
[error] settings.explicitParentLoader_$eq(new Some<>(Thread.currentThread()

但我确信我使用的是 JDK8。

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Maven也使用JDK8

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024M; support was removed in 8.0
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /Users/jzhang/Java/lib/apache-maven-3.3.9
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac"

最佳答案

如今设置编译器源版本和目标版本的典型方法似乎是使用这些预定义的属性:

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

正如您已经注意到的,这些在 Maven 中默认为 1.5。这是因为 Maven 始终是“约定优于配置”,并且这个默认值是在 Java 1.5 还很新的时候定义的。不幸的是,这很难改变,因为任何仍然依赖于 Java 1.5(并且没有指定这些值)的现有项目都可能会崩溃。

关于java - 源值 1.5 的错误已过时,将在未来版本中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45160874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com