mip*_*mip 21 java linux ubuntu maven java-11
我无法使用Java 11和最新版本的maven-compiler-plugin构建.
pom.xml中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugins>
<build>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用Maven构建时:
? mvn clean compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building service 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ service ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 80 source files to /home/mip/service/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.859 s
[INFO] Finished at: 2018-08-01T11:20:55+01:00
[INFO] Final Memory: 32M/124M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project service: Fatal error compiling: release version 11 not supported -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Run Code Online (Sandbox Code Playgroud)
以下是我使用的Maven和Java版本:
? mvn -version
Apache Maven 3.5.2
Maven home: /usr/share/maven
Java version: 10.0.1, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-29-generic", arch: "amd64", family: "unix"
? /usr/lib/jvm/java-11-openjdk-amd64/bin/java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
Run Code Online (Sandbox Code Playgroud)
Java 11将自己标识为"10.0.1"会导致问题吗?如果我修改我的pom.xml,<release>10</release>那么即使我没有安装Java 10,它也没有问题.
? ~ /usr/lib/jvm/java-11-openjdk-amd64/bin/javac -version
javac 10.0.1
? javac --release 11 SomeClass.java
javac: release version 11 not
supported Usage: javac <options> <source files>
use --help for a list of possible options
Run Code Online (Sandbox Code Playgroud)
我认为这是Ubuntu openjdk-11-jdk包的一个问题:
? ~ sudo apt install openjdk-11-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
openjdk-11-jdk is already the newest version (10.0.1+10-3ubuntu1).
0 to upgrade, 0 to newly install, 0 to remove and 2 not to upgrade.
Run Code Online (Sandbox Code Playgroud)
小智 15
mvn需要JAVA_HOME设置。我遇到了同样的问题,设置JAVA_HOME正确的JDK可以解决问题。
我在 docker 容器中构建 java 项目时遇到了这个错误。它一定与 maven 的安装方式有关,因为当我将容器基于官方 maven image时,它就消失了。
特别是,这意味着在我的 Dockerfile 中使用以下内容:
FROM maven:3.6.3-jdk-11-slim
Run Code Online (Sandbox Code Playgroud)
经过进一步调查,关键的区别在于我有这个包java-11-openjdk,但我需要java-11-openjdk-devel.
小智 6
我在 centOS 7 中遇到了类似的问题。
Fatal error compiling: error: release version 11 not supported
Run Code Online (Sandbox Code Playgroud)
我有jre但缺少jdk。您可以通过运行命令来解决这个问题javac。提示找不到命令,需要安装jdk。
安装 Java 11 JDK
sudo yum install java-11-openjdk-devel
Run Code Online (Sandbox Code Playgroud)
安装 Java 11 JRE
sudo yum install java-11-openjdk
Run Code Online (Sandbox Code Playgroud)
更多详细信息请参见此处。我发现这很有用。
https://phoenixnap.com/kb/install-java-on-centos
对我来说,这是因为安装了 Java 11 JRE,而不是 JDK。文件夹名称中包含“jdk”,所以我认为它是正确的,但在文件/bin夹中查看时我没有看到javac可执行文件,所以我认为它正在回退到系统上早于 Java 11 的默认 Java 。
小智 5
我发现您正在使用 Java 9,要使用 Java 11 构建,请尝试以下操作:
确保 JAVA_HOME 设置为 C:\Program Files\Java\jdk-11......
在您的 pom.xml 中添加"<properties> <java.version>11</java.version> </properties>"并引用 ${java.version}(如果适用)。
“mvn -v”应该输出类似这样的内容(取决于您的 maven 和 java 安装在计算机中的位置): Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T21:00:29+02:00) Maven home: C :\Program Files (x86)\Apache-Maven-3.6.1\bin.. Java 版本:11.0.6,供应商:Oracle Corporation,运行时:C:\Program Files\Java\jdk-11.0.6 默认区域设置:en_US ,平台编码:Cp1252 操作系统名称:“windows 10”,版本:“10.0”,arch:“amd64”,系列:“windows”
然后重试 mvn clean install
如果运气不好,请分享您的 pom.xml,以便我们可以看到可能会导致您的构建失败的配置。
| 归档时间: |
|
| 查看次数: |
13999 次 |
| 最近记录: |