Promemoria Gradle
Publié le 23 May 2022
Sommaire
- Mostra l’aiuto
- Impostare la proprietà di sistema della JVM : `-D, --system-prop
- Definire la proprietà del progetto per lo script di build : `-Pmyprop=myvalue
- Specifica la directory di avvio di Gradle. Il valore predefinito è la directory corrente.
- Sovrascrivere la proprietà 'param_component' tramite la riga di comando :
- Aggiungere una cartella a un source-set in un progetto normale con il Kotlin DSL
- Aggiungere una cartella a un source-set in un progetto android con il groovy dsl
- Evitare di costruire e testare un sottamodulo
- prendere un dossier
- Mostra le dipendenze di un build
- Esempio di utilizzo di reduce : concatenazione di una lista in una stringa
- Recuperare la descrizione di un’attività particolare
- Per avviare un’attività dalla workingDir root, quindi prefixare l’attività con un `:
- Per riavviare le attività che non sono riuscite, utilizzare l’opzione `--rerun-tasks
- Avviare un’attività in un progetto specifico da un’altra directory
Mostra l’aiuto
./gradlew --help
Impostare la proprietà di sistema della JVM : `-D, --system-prop
./gradlew -Dmyprop=myvalue
#ou
./gradlew --system-prop myvalue
Definire la proprietà del progetto per lo script di build : `-Pmyprop=myvalue
./gradlew -Pmyprop=myvalue
#ou
./gradlew --project-prop myvalue
Specifica la directory di avvio di Gradle. Il valore predefinito è la directory corrente.
./gradlew -p ~/src/next_startup
#ou
./gradlew --project-dir ~/src/next_startup
Sovrascrivere la proprietà 'param_component' tramite la riga di comando :
./gradlew -Pparam_component=CUSTOM_VALUE
Aggiungere una cartella a un source-set in un progetto normale con il Kotlin DSL
sourceSets {
getByName("test"){
java.srcDir("src/scripts/groovy")
}
getByName("test"){
java.srcDir("src/scripts/kscript")
}
getByName("test"){
java.srcDir("src/test/javascript")
}
}
Aggiungere una cartella a un source-set in un progetto android con il groovy dsl
android {
sourceSets {
main.java.srcDirs += "src/main/../../../../ceelo/domain/src/main/java/"
test.java.srcDirs += "src/test/../../../../ceelo/domain/src/test/java/"
}
}
Evitare di costruire e testare un sottamodulo
gradle build -x :excluded-module:check -x :excluded-module:assemble -x :excluded-module:build
Spostare i file
tasks.register("moveWebappNode") {
doLast {
ant.withGroovyBuilder {
"move"(
"webapp/node_modules" to "$rootDir/webapp-src/node_modules",
)
}
}
}
prendere un dossier
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"))
}
}
Mostra le dipendenze di un build
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()
}
}
}
}
Esempio di utilizzo di reduce : concatenazione di una lista in una stringa
tasks.register("printWebappSrc") {
description = "print webapp sources"
group = WEBAPP
doLast {
webAppSrc
.reduce { acc, s -> "$acc\n\t$s" }
.run { println("$WEBAPP_SRC: $this\n") }
}
}
Recuperare la descrizione di un’attività particolare
./gradlew -q help --task foo
Per avviare un’attività dalla workingDir root, quindi prefixare l’attività con un `:
./gradlew :foo
Per riavviare le attività che non sono riuscite, utilizzare l’opzione `--rerun-tasks
./gradlew check --rerun-tasks
Avviare un’attività in un progetto specifico da un’altra directory
L’opzione`-p` (ou --project-dir) permette di specificare il percorso di un progetto Gradle ed eseguirvi un’attività, anche se la directory corrente è diversa.
Ad esempio, per avviare il compito`build`del progetto situato in`~/projets/mon-autre-projet`pur essendo in un’altra directory:
./gradlew -p ~/projets/mon-autre-projet build
Questo è particolarmente utile per eseguire script di azioni su più progetti da una posizione centrale.
vedere anche :
Articoli correlati
L'architettura « Plugin Indipendente + Radice Consumatore » : Perché i miei build Gradle si duplicano
14 May 2026
14 May 2026