--add-modules только при компиляции

Я создаю свой проект с помощью maven и java- 9. Я добавил в свой pom.xml файл:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <compilerArgs>
            <arg>--add-modules</arg>
            <arg>java.xml.bind</arg>
        </compilerArgs>
    </configuration>
</plugin>

Но все же, чтобы запустить приложение, мне нужно запустить его так:

java -jar --add-modules java.xml.bind my-app.jar

Есть ли способ создать приложение для запуска из командной строки без --add-modules java.xml.bind аргументов командной строки java?


person wbk    schedule 14.09.2017    source источник
comment
что я думаю, но, возможно, неправильно, то, что вы сделали в maven-compiler-plugin, предназначено только для компилятора javac, который также используется maven для компиляции вашего проекта, но не для среды выполнения java, поэтому вам пришлось добавить --add-modules в среду выполнения java java.   -  person Tiina    schedule 09.10.2017
comment
Правильно, и поэтому я задал вопрос, как работать без добавления --add-modules.   -  person wbk    schedule 09.10.2017


Ответы (1)


Некоторое время назад я сделал этот ответ, где я ответил на него как на дополнительную информацию о раскрытии пакетов, отличных от java.se, в Java-9 с использованием Maven .

В добавленной части особое внимание уделяется использованию автономной версии java.xml.* API. Для адаптации к которому вы, вероятно, можете начать использовать зависимость от _ 3_, который можно загрузить как модуль, а также запустить из пути к классам. Вам необходимо внести следующие изменения: добавить в список зависимостей следующее:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

Таким образом вы обеспечите переход на автономные API-интерфейсы для модуля, а также откажетесь от устаревший фрагмент кода.

person Naman    schedule 14.09.2017
comment
Я обнаружил, что этот ответ bourgesl включил для меня JAXB на Java 10. - person Basil Bourque; 18.07.2018
comment
@BasilBourque Что ж, ответ заключался в том, чтобы в первую очередь сосредоточиться на прямых зависимостях --add-modules Vs аналогичных модулей. Согласившись на разрешение JAXB, определенно требуется дополнительный шаг - правильное долгосрочное решение, предложенное в принятом ответе. - person Naman; 18.07.2018