Gradle でアプリケーションを実行する
アーカイブを作成せずにアプリケーションを実行するには、bootRun
タスクを使用します。
$ ./gradlew bootRun
bootRun
タスクは、JavaExec
サブクラスである BootRun
(Javadoc) のインスタンスです。そのため、Gradle で Java プロセスを実行するための通常の構成オプション (英語) はすべて利用可能です。タスクは、メインソースセットのランタイムクラスパスを使用するように自動的に構成されます。
デフォルトでは、メインソースセットの出力で public static void main(String[])
メソッドを持つクラスを探すことによって、メインクラスが自動的に構成されます。
メインクラスは、タスクの main
プロパティを使用して明示的に構成することもできます。
Groovy
Kotlin
tasks.named("bootRun") {
mainClass = 'com.example.ExampleApplication'
}
tasks.named<BootRun>("bootRun") {
mainClass.set("com.example.ExampleApplication")
}
または、Spring Boot DSL の mainClass
プロパティを使用して、プロジェクト全体でメインクラス名を設定できます。
Groovy
Kotlin
springBoot {
mainClass = 'com.example.ExampleApplication'
}
springBoot {
mainClass.set("com.example.ExampleApplication")
}
デフォルトでは、bootRun
は JVM を構成して、開発中の起動を高速化するために最適化します。この動作は、次の例に示すように、optimizedLaunch
プロパティを使用して無効にすることができます。
Groovy
Kotlin
tasks.named("bootRun") {
optimizedLaunch = false
}
tasks.named<BootRun>("bootRun") {
optimizedLaunch.set(false)
}
application
プラグイン (英語) が適用されている場合は、その mainClass
のプロパティが設定されている必要があり、同じ目的で使用することができます。
Groovy
Kotlin
application {
mainClass = 'com.example.ExampleApplication'
}
application {
mainClass.set("com.example.ExampleApplication")
}
アプリケーションに引数を渡す
すべての JavaExec
タスクと同様に、Gradle 4.9 以降を使用する場合は、--args='<arguments>'
を使用してコマンドラインから引数を bootRun
に渡すことができます。例: dev
という名前のプロファイルをアクティブにしてアプリケーションを実行するには、次のコマンドを使用できます。
$ ./gradlew bootRun --args='--spring.profiles.active=dev'
詳細については、JavaExec.setArgsString
の javadoc を参照して (英語) ください。
システムプロパティをアプリケーションに渡す
bootRun
は標準の JavaExec
タスクであるため、ビルドスクリプトで指定することにより、システムプロパティをアプリケーションの JVM に渡すことができます。システムプロパティのその値を構成可能にするには、プロジェクトプロパティ (英語) を使用してその値を設定します。プロジェクトプロパティをオプションにするには、findProperty
を使用して参照します。これにより、次の例に示すように、?:
エルビス演算子を使用してデフォルト値を提供することもできます。
Groovy
Kotlin
tasks.named("bootRun") {
systemProperty 'com.example.property', findProperty('example') ?: 'default'
}
tasks.named<BootRun>("bootRun") {
systemProperty("com.example.property", findProperty("example") ?: "default")
}
上記の例では、その com.example.property
システムプロパティを example
プロジェクトプロパティの値に設定しています。example
プロジェクトプロパティが設定されていない場合、システムプロパティの値は default
になります。
Gradle を使用すると、次の例に示すように、-P
フラグを使用したコマンドラインなど、さまざまな方法でプロジェクトプロパティを設定できます。
$ ./gradlew bootRun -Pexample=custom
上記の例では、example
プロジェクトプロパティの値を custom
に設定しています。bootRun
は、これを com.example.property
システムプロパティの値として使用します。
リソースの再読み込み
devtools がプロジェクトに追加されている場合、変更がないかアプリケーションのクラスパスを自動的に監視します。devtools でリロードをトリガーするには、クラスパスを更新するために変更されたファイルを再コンパイルする必要があることに注意してください。devtools の使用の詳細については、リファレンスドキュメントのこのセクションを参照してください。
アプリケーションの静的リソースがソースの場所から読み込まれるように bootRun
を構成することもできます。
Groovy
Kotlin
tasks.named("bootRun") {
sourceResources sourceSets.main
}
tasks.named<BootRun>("bootRun") {
sourceResources(sourceSets["main"])
}
これにより、開発中に役立つ可能性があるライブアプリケーションに再読み込み可能になります。