类似于invalid target release: 1.7上发布的类似问题,但在关注博客之后我的问题仍未得到解决。
无法在项目hm_app上执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(default-compile):致命错误编译:无效目标版本:1.8 - > [帮助1]
当我遇到这个问题时,我正在关注as tutorial。
abt java & mvn
C:\mvn>echo %JAVA_HOME%
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields
输出
C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\apache-maven-3.0.4
答案 0 :(得分:239)
您已将%JAVA_HOME
设置为jdk 1.7,但您尝试使用1.8进行编译。安装jdk 1.8并确保%JAVA_HOME
指向该版本或将目标版本降至1.7。
目标版本无效:1.8
目标版本是指jdk版本。
答案 1 :(得分:23)
将值放入插件中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
错误是使用:
<source>${java.version}</source>
<target>${java.version}</target>
答案 2 :(得分:19)
在我的情况下,maven&#34;运行配置&#34;使用了错误的JRE(1.7)。请务必检查运行 - &gt;运行配置 - &gt; (Tab)JRE 是一些jdk1.8.x。
答案 3 :(得分:12)
问题得到了解决,因为我的JDK指向1.7,JRE指向1.8。检入命令提示符我的输入
java -version
和
javac -version.
两者都应该相同。
答案 4 :(得分:3)
对于eclipse来说,这就是我解决问题的方法:
答案 5 :(得分:2)
我在尝试将 Spring Boot 项目部署到 heroku 时遇到了类似的问题,尽管我的问题是 invalid target release: 11
。
我通过添加一个新文件 system.properties
解决了它,添加到文件中的内容是 java.runtime.version=11
(对我来说,我使用的是 JDK 11)。
答案 6 :(得分:1)
将它放在您的.profile中会动态处理您的$JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
然后关闭你的shell,打开一个新的并用
进行测试echo $JAVA_HOME
它应该显示类似
的内容/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
如果不是,请在启动脚本中删除JAVA_HOME的任何其他分配。请注意,这些启动脚本以.
开头,因此它们是隐藏的,在使用*
通配符时不会包括在内,例如如果你想grep主目录的所有文件,你需要:
grep -s JAVA_HOME ~/.* --exclude=.bash_history
答案 7 :(得分:1)
使用IntelliJ,我只需要安装另一个(更高)JDK版本。重新启动IDE后,一切正常,甚至所有依赖项也都解决了。
答案 8 :(得分:0)
首先,如果您使用的是eclipse,请检查Build Path -> Configure Build Path -> Java Build Path,查看您的项目使用的是哪个java版本。我推荐使用 Java 1.8。 其次,检查 pom.xml 文件。 ctrl + F 搜索文本“java.version”=> 将其更改为 1.8。 第三次安装 Java 1.8,然后将 JAVE_HOME 路径更改为指向 Java 1.8 文件夹。
答案 9 :(得分:0)
网豆 错误: 无法在项目 doit 上执行目标 org.apache.maven.pluginsmaven-compiler-plugin3.1compile (default-compile) 编译无效目标版本 11 的致命错误 - [帮助 1]
我是如何解决问题的: .右键单击项目。 .转到属性。 .点击来源。 .转到源/二进制格式并更改为最新版本
就我而言 (1.8)
答案 10 :(得分:0)
答案 11 :(得分:0)
正如Camila Macedo所提到的-您必须为编译器插件明确指出Java版本。对于春季启动,您可以通过下一个属性来实现:
<properties>
<java.version>1.8</java.version>
<maven.compiler.release>8</maven.compiler.release>
</properties>
答案 12 :(得分:0)
如果您使用的是Eclipse IDE,请进入“窗口”菜单并选择首选项,然后在其中搜索已安装的JRE,然后选择构建项目所需的JRE
答案 13 :(得分:0)
进行强制Maven更新,它将带来兼容的1.8 Jar版本,然后在构建时,将“运行环境”中的JRE版本从“运行配置”更新为1.8,然后按“运行”
答案 14 :(得分:0)
在Windows计算机上,您可以临时设置Java版本。
例如,要将版本更改为Java 8,请在cmd
上运行以下命令:
set JAVA_HOME=C:\\...\jdk1.8.0_65
答案 15 :(得分:0)
我遇到了在Dokku上部署此问题,由于某种原因,它选择了JDK 1.7
创建system.properties
文件并设置java.runtime.version=1.8
解决了该问题。 Dokku现在使用Java版本8。
Choosing a JDK on Heroku
我从没做过...
答案 16 :(得分:0)
这个问题并没有明确询问Docker,但是当我有一个针对1.9的pom.xml文件时,我收到了同样的错误......
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.9</maven.compiler.source>
<maven.compiler.target>1.9</maven.compiler.target>
</properties>
...但后来尝试通过单独指定“maven”来对Docker容器运行测试。
docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test
对我来说,修复方法是针对我需要的确切版本。
docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test
(您可以learn more here。)
答案 17 :(得分:0)
我遇到的问题是我能够从命令提示符创建maven构建但不能从Eclipse中构建。在eclipse中为我工作的是我将运行配置更改为指向JDK内部的JRE文件夹而不是只按照标准将它留在JDK文件夹中。这个解决方案也可能适用于您,但是当且仅当所有java路径都正确时,尝试此操作,java和javac显示与pom.xml目标中存在的版本相同的版本
答案 18 :(得分:-4)
在我的案例中有用的是:
我打开了pom.xml
并替换了下面的其中一个插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
在我编辑源代码和目标代码之前,我都将1.8
更改为1.7
,然后才有效。