配置JVM内存
Gradle属性org.gradle.jvmargs
控制运行构建的 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 插件参考中的测试执行。
当您使用以下选项时,构建扫描将告诉您有关执行构建的 JVM 的信息--scan
:
使用项目属性配置任务
可以根据调用时指定的项目属性来更改任务的行为。
假设您希望确保发布版本仅由 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