Maven-使用Java 1.7的目标版本1.7无效
一切似乎都是正确的,但就是行不通Maven-使用Java 1.7的目标版本1.7无效,java,maven,Java,Maven,一切似乎都是正确的,但就是行不通 $ sudo mvn clean package ... [INFO] Compilation failure Failure executing javac, but could not parse the error: javac: invalid target release: 1.7 版本: $ mvn -v Apache Maven 2.2.1 (r801777; 2009-08-06 20:16:01+0100) Java version: 1.7
$ sudo mvn clean package
...
[INFO] Compilation failure
Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
版本:
$ mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 20:16:01+0100)
Java version: 1.7.0_75
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre
$ java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/
pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
但我认为这不是问题所在
有什么想法吗?尝试更新编译器插件。版本
3.3
是最新版本。如果这没有帮助,请尝试使用Maven 3+您必须设置如下配置:
org.apache.maven.plugins
maven编译器插件
3.3
1.7
1.7
最好是在pluginManagement区域内配置此文件夹。
mvn clean
删除只读的target
文件夹。解决方案:使用
sudo
对吗?除了sudo
不再读取您的变量或路径,而是读取超级用户的变量或路径
sudomvn-v
现在显示Java1.6
非常感谢khmarbaise答案是正确的。只是想补充一些信息:Java7于2011年7月28日发布。maven编译器插件的2.0.2版发布于2007年2月13日。看到问题了吗?为什么要使用
sudo mvn…
而不是简单的mvn clean package
?为什么要使用Maven 2.2.1?提示:@khmarbaise mvn需要删除classes
文件夹。如果我不使用sudo,它会给出一个错误。但这不是问题,但sudo会影响环境,这意味着sudo的使用没有正确设置。。。?除此之外,mvn clean将删除整个target
文件夹,而不仅仅是target/classes
…相同的错误,不同的表述方式:线程“main”中的异常java.lang.UnsupportedClassVersionError:org/apache/maven/cli/MavenCli:Unsupported major.minor version 51.0
,因此它看起来像是用java7编译的org.apache.maven.MavenCli
,但您想用java6或更低版本运行它。请检查您的JAVA\u HOME
env变量是什么,以及您是否在项目中的某个地方重写了它。您还可以编辑mvn
脚本以打印生成项目所执行的命令。”
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home