Gradle・EclipseプラグインのplusConfiguration/minusConfigurations
GradleのEclipseプラグインにある、この2つのプロパティの意味が非常にわかりにくい。
EclipseClasspathにはこうある。
*plusConfigurations
The configurations whose files are to be added as classpath entries.
* minusConfigurations
The configurations whose files are to be excluded from the classpath entries.
デフォルト値
各デフォルト値は以下のようだ。
println plusConfiguration
[configuration ':compileClasspath', configuration ':runtimeClasspath', configuration ':testCompileClasspath', configuration ':testRuntimeClasspath']
println minusConfiguration
[]
plusConfigurationsへの設定
plusConfigurationsにはデフォルトとして上のようなコンフィギュレーションが設定されているので、これに追加しようとして以下のようにやってはいけない。
plusConfigurations = [project.configurations.XXXClasspath]
これでは[project.configurations.XXXClasspath] のみになってしまう。正しくは以下とする。
plusConfigurations += [project.configurations.XXXClasspath]
minusConfigurationsの意味
minusConfigurationsはplusConfigurationsで取得されたクラスパス用jarリストから、何らかを除去するためのものらしい。具体的に、これがある理由が不明なのだが、ともあれ、以下のようにすると、
minusConfigurations += [project.configurations.compileClasspath]
※minusConfigurationsはデフォルトで空なので、以下でも同じ
minusConfigurations = [project.configurations.compileClasspath]
たしかに、compile(implementation)で指定されたライブラリjarが除去されtestCompile(testImplementation)のみになる。