の二種類があります。
java プラグイン
plugins {
id 'java-library'
}
Gradle 1.0から使用できるプラグインで、最新のGradle9系でも使用できます。
java-library プラグイン
plugins {
id 'java-library'
}
javaプラグインの上位互換です。
Gradle 3.4(2017年3月リリース)で追加された比較的新しいプラグインです。
Gradle 3.4以降で利用可能で、それ以前(Gradle 3.3以下)では利用できません。
依存関係の指定方法
依存関係 (dependency) で指定できる依存方法がプラグインにより違いがあります。
java-libraryプラグインでは、新たな依存方法のapiが使用できます。
| 定義名 | javaプラグイン | java-libraryプラグイン | 用途・説明 | 備考 |
|---|---|---|---|---|
| implementation | 〇 | 〇 | 内部実装依存。外部には公開されない | 新方式(推奨) |
| compileOnly | 〇 | 〇 | コンパイル時のみ必要。実行時には不要 | 新方式(推奨) |
| runtimeOnly | 〇 | 〇 | 実行時のみ必要。コンパイルには不要 | 新方式(推奨) |
| testImplementation | 〇 | 〇 | テスト時の内部実装依存 | 新方式(推奨) |
| testCompileOnly | 〇 | 〇 | テスト時のコンパイルのみ依存 | 新方式(推奨) |
| testRuntimeOnly | 〇 | 〇 | テスト時の実行時のみ依存 | 新方式(推奨) |
| api | × | 〇 | ライブラリのAPIとして公開される依存 | java-libraryのみ |
| compile | 〇 | 〇 | コンパイル時依存(実行時も含む) | 旧方式(非推奨、廃止予定) |
| testCompile | 〇 | 〇 | テストのコンパイル時依存(実行時も含む) | 旧方式(非推奨、廃止予定) |
| runtime | 〇 | 〇 | 実行時依存 | 旧方式(非推奨、廃止予定) |
| testRuntime | 〇 | 〇 | テスト実行時依存 | 旧方式(非推奨、廃止予定) |
どちらを使うべきか
java-libraryプラグインはjavaプラグインの完全互換であるため、通常はjava-libraryプラグインを使用するのが良いでしょう。
あまりないケースですが、Gradle 3.3以下を使用する必要がある場合、java-libraryプラグインは使用できないので、javaプラグインを使うことになります。