gradle init タスクの対話入力省略
gradle init タスクに --use-defaults
オプションが追加された。
これを指定することで、全ての対話入力にデフォルト値が指定されたものとして扱われるようになった。
Java アプリケーションの場合は以下のように指定すれば、対話入力無しでプロジェクトが生成できる。
gradle init --use-defaults --type java-application
Kotlinライブラリの場合は以下のように指定すれば良い。
gradle init --use-defaults --type kotlin-library
ソースパッケージの対話入力を削除
旧来は、gradle init
タスク中の対話入力にて、ソースパッケージの入力を求められた。
Source package (default: example):
Gradle 8.6 からは、この対話入力が省略され、デフォルト値として org.example
が入力されたものとして扱われるようになった。
値を指定したい場合は、以下のように --package
フラグで指定することができる。
gradle init --package my.corp.domain
または、Gradle のユーザホーム(~/.gradle/
)の gradle.properties
に以下を指定することでデフォルト値を変更できる。
org.gradle.buildinit.source.package=my.corp.domain
Kotlin DSL スクリプト
gradle init タスクで生成されるKotlin DSL スクリプトが、simple property assignment で記載されるようになった。
これは set()
メソッドの代わりに =
演算子でプロパティ割り当てを行うもので、Gradle 8.2より安定版として利用可能になったものである。
つまり、以前は以下のように生成されていたものが、
application { mainClass.set("org.example.app.App") }
以下のように生成されるようになった。
application {
mainClass = "org.example.app.App"
}
マルチモジュールプロジェクトの convention plugins
gradle init タスクの対話入力で、マルチモジュールを選択した場合、
Generate multiple subprojects for application? (default: no) [yes, no] yes
以下のようにソースパッケージで入力した内容(ここでは my.corp.domain
) で convention plugins のソースが生成されていた。
├─ buildSrc │ ├─ build.gradle.kts │ ├─ settings.gradle.kts │ └─ src │ └─ main │ └─ kotlin │ ├─ my.corp.domain.java-application-conventions.gradle.kts │ ├─ my.corp.domain.java-common-conventions.gradle.kts │ └─ my.corp.domain.java-library-conventions.gradle.kts
Gradle 8.6 からは、パッケージ名ではなく、buildlogic
という短い名前で生成されるようになった。
├─ buildSrc │ ├─ build.gradle.kts │ ├─ settings.gradle.kts │ └─ src │ └─ main │ └─ kotlin │ ├─ buildlogic.java-application-conventions.gradle.kts │ ├─ buildlogic.java-common-conventions.gradle.kts │ └─ buildlogic.java-library-conventions.gradle.kts