Ant の TestNG タスクで Java9 の --add-modules コマンドオプションがエラーになるのを回避する

こんにちは、開発担当の Masa です。

JDK9 では "javax.xml.ws.*" など一部のモジュールがデフォルトで読み込まれなくなったため、必要であれば "--add-modules" Java コマンドオプションでモジュールの読み込みを指定します。

Ant で TestNG を実行する際に "jvmarg" で "--add-modules" Java コマンドオプションを追加するとエラーになる現象が発生しました。

<testng classpathref="creator">
  <jvmarg value="--add-modules java.xml.ws" />

↑これはエラーになります。

回避するには "line" で指定します。

<testng classpathref="creator">
  <jvmarg line="--add-modules java.xml.ws" />

尚、"--add-modules" Java コマンドオプションで複数のモジュールを指定する場合、カンマで区切って指定しますが、
下記はエラーになります。

<testng classpathref="creator">
  <jvmarg line="--add-modules java.xml.ws,java.activation" />

回避するには下記のようにします。

<testng classpathref="creator">
  <jvmarg line="--add-modules java.xml.ws" />
  <jvmarg line="--add-modules java.activation" />

2個追加。以上です。