gpt4 book ai didi

java - 编译 fatal error : Failed to run the ecj compiler: Unrecognized option : --module-version

转载 作者:行者123 更新时间:2023-12-02 04:38:25 27 4
gpt4 key购买 nike

尝试运行以下组合:

  • Maven (3.6.1)
  • OpenJDK 11
  • 使用 module-info.java
Fails with the following error message:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project tourconex: Fatal error compiling: Fa
iled to run the ecj compiler: Unrecognized option : --module-version -> [Help 1]

曾尝试添加空白compilerArgs节点,但无济于事。

删除 module-info.java 可以解决问题,但这不是我想要的。

另外,查看了来源http://central.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/3.8.1/

特别是在 CompilerMojo.java 的源代码中:

模块版本总是被添加,所以似乎没有办法抑制它:

compilerArgs.add( "--module-version" );
compilerArgs.add( getProject().getVersion() );

查看ecj的文档,没有“模块版本”参数

https://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-using_batch_compiler.htm

看来目前还行不通!?

Maven 插件部分:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerId>eclipse</compilerId>
<source>11</source>
<target>11</target>
<release>11</release>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
<version>3.17.0</version>
</dependency>
</dependencies>
</plugin>

最佳答案

到目前为止,ecj 不支持选项 --module-version

它可能由于以下几个可能的原因而被遗漏:

  • 没有人关心,因为模块版本不由 JVM 或其他工具评估
  • 也许在 Java 9 GA 之前它没有被指定为新的编译器选项(http://openjdk.java.net/jeps/261 没有版本历史记录,但我知道文本在发布当天发生了重大更改)。

请通过 https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT 提交功能请求

编辑:您的功能请求已实现。虽然我们错过了今天发布的 Eclipse 2019-06,但您可以从下面的下一个集成构建中获取 ecj.jar https://download.eclipse.org/eclipse/downloads/index.html - 下一个完整版本计划于 9 月发布。

编辑2:经过更多研究,最简单的解决方法可能是回到 maven-compiler-plugin 3.8.0 版本,它不会尝试传递 --module-version 到编译器。这种情况仅在今年 5 月发布 3.8.1 后才会发生。

关于java - 编译 fatal error : Failed to run the ecj compiler: Unrecognized option : --module-version,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56534394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com