Gradleメモ
公開日: 23 May 2022
Sommaire
- ヘルプを表示
- JVMのシステムプロパティを設定する : `-D, --system-prop
- ビルドスクリプトのプロジェクトプロパティを設定する: `-Pmyprop=myvalue
- Gradleの起動ディレクトリを指定します。デフォルトは現在のディレクトリです。
- コマンドラインからプロパティ 'param_component' をオーバーライドする :
- 通常のプロジェクトで Kotlin DSL を使用してソースセットにフォルダーを追加する
- Groovy DSL を使って Android プロジェクトのソースセットにフォルダーを追加する
- サブモジュールの構築とテストを避ける
- ファイルを取る
- ビルドの依存関係を表示
- reduceの使用例:リストの文字列への結合
- 特定のタスクの説明を取得
- workingDir ルートからタスクを起動するには、タスクに
:をプレフィックスとして付けてください。 - 失敗したタスクを再起動するには、オプション
--rerun-tasksを使用してください。 - 別のディレクトリから特定のプロジェクトでタスクを起動する
ヘルプを表示
./gradlew --help
JVMのシステムプロパティを設定する : `-D, --system-prop
./gradlew -Dmyprop=myvalue
#ou
./gradlew --system-prop myvalue
ビルドスクリプトのプロジェクトプロパティを設定する: `-Pmyprop=myvalue
./gradlew -Pmyprop=myvalue
#ou
./gradlew --project-prop myvalue
Gradleの起動ディレクトリを指定します。デフォルトは現在のディレクトリです。
./gradlew -p ~/src/next_startup
#ou
./gradlew --project-dir ~/src/next_startup
コマンドラインからプロパティ 'param_component' をオーバーライドする :
./gradlew -Pparam_component=CUSTOM_VALUE
通常のプロジェクトで Kotlin DSL を使用してソースセットにフォルダーを追加する
sourceSets {
getByName("test"){
java.srcDir("src/scripts/groovy")
}
getByName("test"){
java.srcDir("src/scripts/kscript")
}
getByName("test"){
java.srcDir("src/test/javascript")
}
}
Groovy DSL を使って Android プロジェクトのソースセットにフォルダーを追加する
android {
sourceSets {
main.java.srcDirs += "src/main/../../../../ceelo/domain/src/main/java/"
test.java.srcDirs += "src/test/../../../../ceelo/domain/src/test/java/"
}
}
サブモジュールの構築とテストを避ける
Gradle ビルド -x :excluded-module:check -x :excluded-module:assemble -x :excluded-module:build
ファイルを移動する
tasks.register("moveWebappNode") {
doLast {
ant.withGroovyBuilder {
"move"(
"webapp/node_modules" to "$rootDir/webapp-src/node_modules",
)
}
}
}
ファイルを取る
tasks.register<Tar>("tarWebapp") {
dependsOn("moveWebappNpm")
group = WEBAPP
description = "tar webapp"
doLast {
setOf(
"build",
"target",
"node_modules"
).forEach { dir -> exclude { it.name .dir } }
archiveFileName.set("webapp.tar")
destinationDirectory.set(File("${rootDir.absolutePath}$sep$WEBAPP_SRC"))
}
}
ビルドの依存関係を表示
tasks.register("printDependencies") {
description = "print project dependencies"
group = WEBAPP
doLast {
println("${project.name} dependencies")
mutableMapOf<String, Map<String, String>>(
"buildDependencies" to buildDependencies,
"domainDeps" to domainDeps,
"domainTestDeps" to domainTestDeps,
).apply { putAll(appModules) }
.forEach { module ->
if (module.value.isNotEmpty()) {
println("${module.key}:")
module.value.forEach { println(dependency(it)) }
println()
}
}
}
}
reduceの使用例:リストの文字列への結合
tasks.register("printWebappSrc") {
description = "print webapp sources"
group = WEBAPP
doLast {
webAppSrc
.reduce { acc, s -> "$acc\n\t$s" }
.run { println("$WEBAPP_SRC: $this\n") }
}
}
特定のタスクの説明を取得
./gradlew -q help --task foo
workingDir ルートからタスクを起動するには、タスクに : をプレフィックスとして付けてください。
./gradlew :foo
失敗したタスクを再起動するには、オプション --rerun-tasks を使用してください。
./gradlew check --rerun-tasks
別のディレクトリから特定のプロジェクトでタスクを起動する
関連記事
HyperFrames-Gradle : AsciiDocをMP4動画に変換
31 May 2026
31 May 2026
プラグイン独立+コンシューマー ルート アーキテクチャ:なぜ私のGradleビルドが重複するのか
14 May 2026
14 May 2026