我有一个简单的Maven项目:
src
??? main
??? java
??? module-info.java
pom.xml
Run Code Online (Sandbox Code Playgroud)
pom.xml中:
<groupId>org.example</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>example</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<release>10</release>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
当我通过构建项目时mvn -X install -DskipTests=true,它失败了:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project example: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) …Run Code Online (Sandbox Code Playgroud) 我刚刚在Windows 10上安装了OpenJDK版本的JDK 11通用可用性版本.我尝试在刚刚发布的Eclipse 2018-09(4.9.0)中将其作为JRE安装,并在Eclipse对话框中显示一条消息:
您选择了此版本的Eclipse JDT尚未完全支持的JRE.某些功能可能无法正常工作.
问题是什么?
更新:从Internet搜索,我发现一些代码似乎表明Eclipse有一个已知Java版本的内部列表,如果新的JDK版本的版本高于已知的Java版本,它会给出上述消息.(这就是我解释代码的方式.)真的吗?Eclipse发布了一个新的2018-09版本,就在JDK 11发布前几天,没有更新其已知Java版本列表以包含Java 11?
也许有人有更权威的答案.
我在Windows 10上运行Eclipse 2018-09(4.9.0).我正在使用Open JDK 11 GA.我有一个使用Java 8兼容源代码的项目,可以使用Eclipse和Maven中的JDK编译.
我想使用新的Java 11功能,所以首先我将编译器源/目标从Java 8更改为Java 11.它仍然在命令行上使用Maven构建查找,但无法在Eclipse中编译(参见Eclipse 2018-09 won)编译Java 11源代码;认为它低于1.7).
所以我在Eclipse Marketplace中添加了"Java 11 Support for Eclipse 2018-09"插件.我重新启动了Eclipse并用于Alt+F5刷新我的Maven项目.Eclipse然后尝试重建项目.
现在Eclipse进入了一个无限循环,在8X%完成到9X%完成之间跳跃,重复,无休止的错误如下:
!SESSION 2018-09-27 08:08:51.188 -----------------------------------------------
eclipse.buildId=4.9.0.I20180906-0745
java.version=11
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
This is a continuation of log file …\.metadata\.bak_0.log
Created Time: 2018-09-27 08:11:22.981
!ENTRY org.eclipse.core.resources 4 2 2018-09-27 08:11:22.981
!MESSAGE Problems occurred when invoking code from plug-in: …Run Code Online (Sandbox Code Playgroud)