메모 그레이들
게시: 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 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",
)
}
}
}
파일을 가져오다
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