java プラグインは、プロジェクトのディレクトリ構成が次のようになっていると想定しています。
これは、Gradle のソースセットの設定(インプットファイルの置き場所の設定)がデフォルトでこのようになっているからです。
- Java ソースコード:
src/main/javaおよびsrc/test/java - 出力先のディレクトリ:
build
このソースセットの設定を変更するとこで、プロジェクトの都合に合わせたディレクトリ構成に変更できます。
例えば、製品用の Java ソースコードを src ディレクトリ、テスト用の Java ソースコードを test ディレクトリ、出力先を out ディレクトリに変更するには以下のように設定します。
apply plugin: 'java'
sourceSets {
main {
java {
srcDirs = ['src']
}
}
test {
java {
srcDirs = ['test']
}
}
}
buildDir = 'out'こう書くこともできます。
apply plugin: 'java'
sourceSets.main.java.srcDirs = ['src']
sourceSets.test.java.srcDirs = ['test']
buildDir = 'out'
この設定により、下記のようなパスに置かれた Java ソースコードがコンパイルされるようになります。
src/com/example/Main.java
正確には、srcDirs メソッドは、ディレクトリを変更するのではなく追加 します。
なので、もともとの src/main/java ディレクトリ以下に置かれている Java ソースコードは、相変わらずコンパイルの対象になります。
ちなみに、出力先ディレクトリ (buildDir) を変更した場合、gradle clean コマンドでクリーンナップされるディレクトリも変更されます。