【发布时间】:2015-10-14 00:07:42
【问题描述】:
我们刚刚将项目从jdk 1.6 升级到jdk 1.8。在我的机器上构建项目时,出现以下错误。
[ERROR] 未能执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (默认编译)项目异常:致命错误编译:无效 目标版本:1.8 -> [帮助 1]
这里是使用的maven编译插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
我查看了许多帖子,其中大多数与没有为 java_home 配置正确版本有关。我验证了所有这些方面,没有发现任何令人担忧的地方。
Java 版本 -
qadeersmsiphone:main pdubey$ java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
Maven 版本 -
qadeersmsiphone:main pdubey$ mvn -version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: /usr/share/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
我在构建项目时检查了 maven 使用 jdk 1.8
qadeersmsiphone:main pdubey$ mvn install -debug
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: /usr/share/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from /usr/share/maven/conf/settings.xml
[DEBUG] Reading user settings from /Users/pdubey/.m2/settings.xml
[DEBUG] Using local repository at /Users/pdubey/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/pdubey/.m2/repository
[INFO] Scanning for projects...
更新:我可以通过删除 pom文件中的maven-compiler-plugin(理想情况下,我不想这样做)。而且我还观察到即使我 去掉这个插件,maven默认下载3.3版本的 我本地仓库中的编译器插件。我不确定这有什么问题 插件虽然源和目标似乎是正确的。
【问题讨论】:
-
真的吗? “
Apache Maven 3.1.1 (… 2013-09-17…” -
@Holger 不知道 (..2013-09-17) 的意义是什么,但我从这里下载了 maven archive.apache.org/dist/maven/maven-3/3.1.1/binaries。请注意,我之前有 mac 的默认 maven (v3.0.3),我升级到 v3.1.1
-
它只是看起来比 Java 8 旧,但是,当然,这不是问题,只要编译器插件和调用的编译器可以处理请求的目标版本 1.8,他们显然不能。但是由于 Maven 版本是您发布的唯一版本号,我假设其他所有内容都与此一样古老。我不知道您的环境中还有什么其他障碍,但在您的情况下,我会尝试的第一件事是从这里下载:archive.apache.org/dist/maven/maven-3/3.3.3/binaries跨度>
-
对我来说,从 Maven 3.2.5 升级到 3.3.3 就成功了。