--add-opens JDK モジュール構成を Maven テストに渡す方法 質問する

--add-opens JDK モジュール構成を Maven テストに渡す方法 質問する

運用コードの Java バージョンを Java 8 から Java 11 にアップグレードしています。

Flume、Zookeeper などのサードパーティ ライブラリを使用しているため、アプリケーションの java 起動コマンドに以下の JDK モジュール構成を追加する必要があります。

--add-opens java.base/java.lang=ALL-UNNAMED --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED

この構成を追加すると、Java アプリケーションは正常に起動します。

しかし、テストを実行すると、mvn testテストは失敗します。以下の構成を maven-surefire-plugin に追加しましたが、それでもエラーが発生します。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M5</version>
    <configuration>
        <argLine>--illegal-access=permit</argLine>
        <argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine>
        <argLine>--add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED</argLine>
        <argLine>-Dillegal-access=permit</argLine>
    </configuration>
</plugin>

Maven テストで引数を正しく渡していないと思います。何が間違っているのか、またこれを修正するにはどうすればよいのか、ご存知ですか?

ベストアンサー1

それはシングル argLine、 のように:

<argLine>
    --add-exports org.junit.platform.commons/org.junit.platform.commons.util=ALL-UNNAMED
    --add-exports org.junit.platform.commons/org.junit.platform.commons.logging=ALL-UNNAMED
</argLine>

おすすめ記事