我知道有很多问题都有类似的错误。在此之前,我将不胜感激,因为考虑到它只发生在Java9中。
我确实安装了java 9
C:\_pocs\ws_j9\java9-http-client>java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
C:\_pocs\ws_j9\java9-http-client>echo %JAVA_HOME%
C:\Program Files\Java\jdk-9.0.1
为了简化示例,如果我下载一个非常简单的示例https://examples.javacodegeeks.com/core-java/java-9-httpclient-example/我尝试/
mvn清洁安装包-e
[ERROR] Failed to parse module-info:
[ERROR] With qdox: null
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.925 s
[INFO] Finished at: 2018-01-01T23:43:32+01:00
[INFO] Final Memory: 13M/44M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:testCompile (default-testCompile) on project http_client: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:testCompile failed: Failed to parse module-info -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:testCompile (default-testCompile) on project http_client: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:testCompile failed: Failed to parse module-info
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
波姆。xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javacodegeeks.java9</groupId>
<artifactId>http_client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Java9HttpClient</name>
<description>Java Http Client example</description>
<properties>
<java-version>1.9</java-version>
<maven-compiler-plugin-version>3.6.1</maven-compiler-plugin-version>
<maven-shade-plugin-version>3.0.0</maven-shade-plugin-version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin-version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<verbose>true</verbose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.javacodegeeks.java9.http_client.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
我有点困惑是什么导致了这个问题。除此之外,我还面临着另一个挑战,这使得第一次尝试使用Java9的人更加困难:我的Eclipse没有正确接受Java9。我试图在Eclipse Oxygen中安装Java9支持,我刚刚下载了它,但我得到了“在http://download.eclipse.org/eclipse/updates/none没有找到存储库”。我不能让这个mvn插件更新Java版本到9(它曾经可以正常工作Java
<properties>
<java-version>1.9</java-version>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<verbose>true</verbose>
</configuration>
</plugin>
这就是我试图从命令行编译straich的原因。
我读到Java9带来了模块化的新概念,这将帮助我们更好地组织包,但如果这能促使我解决我的问题,我非常受限。当有人看到“解析模块信息失败”时,这可能是一个显而易见的解决方案,但我无法想象有什么有用的尝试。
我的直截了当的问题是为了编译我可以检查什么。另外一个使Eclipse Oxygen当前版本与Java9兼容的技巧也将非常有用。
不到24小时前为Windows下载的Eclipse版本:
面向Web开发人员的EclipseJavaEEIDE。
版本:氧气。2版本(4.7.2)构建id:20171218-0600
在我从1.9更改为9之后,红色错误图标消失了,我现在Java9。然而,现在我得到了这个错误:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.542 s
[INFO] Finished at: 2018-01-02T05:19:30+01:00
[INFO] Final Memory: 9M/30M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project http_client: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
这对我来说没有意义,因为:
在第二次编辑中,您必须将jdk添加到构建路径中。转到windows-
简而言之,添加一个名为module info的丢失/错位类。java
将项目的模块声明包含在项目的源根目录中。(例如src/main/java
)
此外,请注意升级到3.7版。如果您的模块信息
类中包含注释,请使用maven编译器插件的0。[日志似乎与此非常相关。]
或者另一种方式,如果您希望使用以前版本的Java编译您的项目,那么使用
释放
标志:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<release>8</release>
<verbose>true</verbose>
</configuration>
</plugin>
随着Java9标志着Jigsaw项目的完成,其中引入了Java平台模块系统(JPMS),基于Java版本9和更高版本的项目将模块化。这将包括一个名为
moduleinfo的主编译类。类
,这是该模块的声明。
初稿和最终的模块系统状态最好地描述了遵循和实践的概念。
另一个技巧是使Eclipse当前版本与Java9兼容
AFAIK来自Eclipse的最新Oxygen版本(目前为Oxygen.2)旨在与Java9兼容,不再需要任何额外的插件支持。
>
Maven编译器插件对模块信息包含和排除的示例
问题内容: 我有一个Java FX项目,正在使用maven 3.0.5进行构建。当我运行mvn package / install时,项目失败,并抱怨该包javafx。 * 不存在。据我了解,Javafx是用Java 1.7打包的,因此该构建没有接受它是没有意义的。当我在IDE(intellij)中编译它时,它可以正常工作,并且之后我的maven构建也成功安装,但是我不希望每次执行全新安装时都必须
我知道这是一个重复的问题,但其他话题的答案对我没有帮助。 我使用的是Eclipse光子,Java版本:10,我在Eclipse和pom中将jdk/jre版本设置为10。xml文件。我已经改变了。ini文件: -dosgi.requiredJavaVersion=10(设置为1.8) 我还在我的pom中添加了插件。xml: 没有任何帮助。这是我的pom。xml: 这些依赖项没有在类文件中读取,我也尝
问题内容: 我想使用Maven强制执行器插件检查我的路径上是否有重复的类。我从这里尝试过这个例子。 但是当我这样运行时: 我得到这个: 无法在项目datapopulator上执行目标org.apache.maven.plugins:maven-enforcer- plugin:1.0.1:enforce(default-cli):目标org.apache.maven.plugins:maven-
我一直在尝试使用maven构建代码。但我有一个错误。该代码可在此github repo上获得。谷歌游戏爬虫 maven显示的我的系统配置如下: 以下是错误的Maven跟踪: 这是pom。xml。
当我运行intellij idea maven安装时,它遇到了如下问题 无法执行目标组织。阿帕奇。专家插件:maven编译器插件:3.8.1:testCompile 如何解决?
由于IntelliJ,我发现需要将以下选项传递给: