設定 JVM 記憶體
org.gradle.jvmargs
Gradle 屬性控制執行建置的 VM。預設為 -Xmx512m "-XX:MaxMetaspaceSize=384m"
您可以使用下列方式調整 Gradle 的 JVM 選項。
選項 1:變更建置 VM 的 JVM 設定
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
JAVA_OPTS
環境變數控制命令列用戶端,它只用於顯示主控台輸出。預設為 -Xmx64m
選項 2:變更用戶端 VM 的 JVM 設定
JAVA_OPTS="-Xmx64m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8"
有一個情況是用戶端 VM 也可用作建置 VM 如果您停用 Gradle Daemon 且用戶端 VM 與建置 VM 所需的設定相同,用戶端 VM 將直接執行建置。 否則,用戶端 VM 將分岔一個新的 VM 來執行實際建置,以遵循不同的設定。 |
某些工作,例如 test
工作,也會分岔其他 JVM 程序。您可以透過工作本身來設定這些工作。它們預設使用 -Xmx512m
。
範例 1:設定 Java 編譯作業的編譯選項
build.gradle.kts
plugins {
java
}
tasks.withType<JavaCompile>().configureEach {
options.compilerArgs = listOf("-Xdoclint:none", "-Xlint:none", "-nowarn")
}
build.gradle
plugins {
id 'java'
}
tasks.withType(JavaCompile).configureEach {
options.compilerArgs += ['-Xdoclint:none', '-Xlint:none', '-nowarn']
}
在 測試 API 文件和 Java 外掛參考中的測試執行 中查看其他範例。
當您使用 --scan
選項時,建置掃描 會告訴您執行建置的 JVM 資訊
使用專案屬性設定作業
可以根據呼叫時指定的專案屬性變更作業的行為。
假設您希望確保只由 CI 觸發發行建置。執行此操作的簡單方法是使用 isCI
專案屬性。
範例 1:防止在 CI 外部發行
build.gradle.kts
tasks.register("performRelease") {
val isCI = providers.gradleProperty("isCI")
doLast {
if (isCI.isPresent) {
println("Performing release actions")
} else {
throw InvalidUserDataException("Cannot perform release outside of CI")
}
}
}
build.gradle
tasks.register('performRelease') {
def isCI = providers.gradleProperty("isCI")
doLast {
if (isCI.present) {
println("Performing release actions")
} else {
throw new InvalidUserDataException("Cannot perform release outside of CI")
}
}
}
$ gradle performRelease -PisCI=true --quiet Performing release actions