我继承了Tycho项目,该项目是用Java 8构建的,但可以用Java 10运行。出于某种原因,现在也应该用Java 10构建。问题在于所有缺少的JDK捆绑包,例如
[ERROR] The type javax.xml.bind.annotation.XmlElementWrapper cannot be resolved. It is indirectly referenced from required .class files
我现在想将--add-modules=ALL-SYSTEM
添加到Tycho编译器中(就像它已经在 *。product 文件中一样)。但是,这似乎是不可能的。我尝试过:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<argLine>--add-modules=ALL-SYSTEM</argLine>
<compilerArgument>--add-modules=ALL-SYSTEM</compilerArgument>
<compilerArgs><compilerArg>-add-modules=ALL-SYSTEM</compilerArg></compilerArgs>
</configuration>
</plugin>
向Maven添加依赖项(我希望这会绕过对导入包的需要)和pomDependencies=consider
:
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.8</version>
<scope>provided</scope>
</dependency>
</dependencies>
当然,就像将其作为VM参数传递一样。什么都没有。
该主题的大多数问题仅集中在这个想法有多愚蠢(它无疑是一个愚蠢的想法),但是没有时间将项目切换到Java 10(或者更新一些)。
那么我如何向Tycho添加编译器参数?
答案 0 :(得分:0)
您可以这样配置编译器参数:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<compilerArgs>
<arg>--module-path</arg>
<arg>${java.home}/jmods</arg>
<arg>--add-modules</arg>
<arg>java.smartcardio</arg>
</compilerArgs>
</configuration>
</plugin>
另请参阅this question和此bug report。他们处理告诉Java编译器查找模块的问题。