将参数“ --add-modules”添加到Tycho编译器

时间:2019-05-13 06:28:23

标签: tycho

我继承了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添加编译器参数?

1 个答案:

答案 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编译器查找模块的问题。