도움말 보기

./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 build -x :excluded-module:check -x :excluded-module:assemble -x :excluded-module:build

  1. 파일 이동

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

다른 디렉터리에서 특정 프로젝트의 작업을 실행

옵션`-p` (ou --project-dir) 를 사용하면 Gradle 프로젝트의 경로를 지정하고 현재 디렉터리가 다를 경우에도 해당 작업을 실행할 수 있습니다.

예를 들어, 작업을 시작하려면`build`프로젝트 위치에 있는`~/projets/mon-autre-projet`다른 디렉터리에 있는 동안 :

./gradlew -p ~/projets/mon-autre-projet build

이것은 중앙 위치에서 여러 프로젝트에 걸쳐 작업을 스크립트하는 데 특히 유용합니다.

참조 :

관련 기사