運用コードの 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>