ग्रैडल नोट
Publié le 23 May 2022
Sommaire
- सहायता दिखाएँ
- JVM का सिस्टम प्रॉपर्टी सेट करें : `-D, --system-prop
- परियोजना की संपत्ति को बिल्ड स्क्रिप्ट के लिए परिभाषित करें : `-Pmyprop=myvalue
- Gradle की स्टार्टअप निर्देशिका निर्दिष्ट करता है। डिफ़ॉल्ट मान वर्तमान निर्देशिका है।
- कमांड लाइन से 'param_component' property को ओवरराइट करें :
- Kotlin DSL के साथ एक सामान्य प्रोज़क्ट में सोर्स-सेट में एक फ़ोल्डर जोड़ें
- एंड्रॉइड प्रोजेक्ट में स्रोत सेट में ग्रोवी DSL के माध्यम से फ़ोल्डर जोड़ें
- एक सब मॉड्यूल का निर्माण और परीक्षण करने से बचें
- Tar एक फ़ोल्डर
- एक बिल्ड की निर्भरताएँ दिखाएँ
- reduce का उपयोग करने का उदाहरण: सूची को स्ट्रिंग में संयोजन
- किसी विशेष कार्य का विवरण प्राप्त करें
- workingDir root से एक कार्य लॉन्च करने के लिए, फिर कार्य को
:से प्रीफ़िक्स - असफल कार्यों को पुनः चलाने के लिए, विकल्प
--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' property को ओवरराइट करें :
./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")
}
}
एंड्रॉइड प्रोजेक्ट में स्रोत सेट में ग्रोवी DSL के माध्यम से फ़ोल्डर जोड़ें
android {
sourceSets {
main.java.srcDirs += "src/main/../../../../ceelo/domain/src/main/java/"
test.java.srcDirs += "src/test/../../../../ceelo/domain/src/test/java/"
}
}
एक सब मॉड्यूल का निर्माण और परीक्षण करने से बचें
gradle build -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",
)
}
}
}
Tar एक फ़ोल्डर
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 root से एक कार्य लॉन्च करने के लिए, फिर कार्य को : से प्रीफ़िक्स
./gradlew :foo
असफल कार्यों को पुनः चलाने के लिए, विकल्प --rerun-tasks का उपयोग करें
./gradlew check --rerun-tasks
दूसरे निर्देशिका से एक विशिष्ट प्रोजेक्ट में एक टास्क शुरू करें
विकल्प`-p` (ou --project-dir) एक Gradle प्रोजेक्ट तक पहुँचने का पथ निर्दिष्ट करने और उसे एक कार्य निष्पादित करने की अनुमति देता है, भले ही वर्तमान निर्देशिका अलग हो।
उदाहरण के लिए, कार्य शुरू करने के लिए`build`परियोजना स्थित में`~/projets/mon-autre-projet`होते हुए एक अन्य निर्देशिका में :
./gradlew -p ~/projets/mon-autre-projet build
यह कई परियोजनाओं में कार्यों को स्क्रिप्ट करने के लिए केंद्रीय स्थान से विशेष रूप से उपयोगी है।