web-dev-qa-db-ja.com

--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コマンドライン引数なしでコマンドラインから実行するアプリケーションをビルドする方法はありますか?

27
wbk

Mavenを使用してJava-9で_Java.se以外のパッケージを公開するための追加情報としてこれに答えた この回答 .

追加された部分は、特にJava.xml.* APIのスタンドアロンバージョンの使用に焦点を当てています。モジュールにロードできるjaxb-api:2.3.0の依存関係を消費し始める可能性のあるものに適応するにはクラスパスからも実行できます。行う必要がある変更は、依存関係リストに次を追加することです。

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

これにより、モジュールのスタンドアロンAPIへの移行と、 非推奨のコードからの移行が確実になります。

33
Naman