Добавить аргумент "--add-modules" в Tycho Compiler - PullRequest
1 голос
/ 13 мая 2019

Я унаследовал проект 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>

Aa и, конечно, что-то вродепередавая это как аргумент VM.Ничего не работает

Большинство вопросов по этому предмету сосредоточены только на том, насколько глупа идея (она, несомненно, есть), но нет времени переключить проект на Java 10 (или что-то более современное).

Так как мне добавить аргументы компилятора в Tycho?

1 Ответ

0 голосов
/ 01 июля 2019

Вы можете настроить аргументы компилятора следующим образом:

<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>

См. Также этот вопрос и этот отчет об ошибках .Они решают проблему, сообщая компилятору Java найти модули.

...