Appearance
gradle.properties 配置
gradle.properties 是 Gradle 的配置文件,以键值对形式存储构建配置,无需重新安装 Gradle 即可调整构建行为。
文件位置
| 位置 | 作用域 | 说明 |
|---|---|---|
<project>/gradle.properties | 项目级 | 提交到 Git,团队共享 |
~/.gradle/gradle.properties | 用户级 | 本地配置,不提交 Git |
GRADLE_USER_HOME/gradle.properties | 全局 | 同用户级 |
常用 Gradle 系统属性
properties
# =======================================================
# JVM 参数配置
# =======================================================
# Gradle Daemon 的 JVM 内存(大型项目建议 2-4G)
org.gradle.jvmargs=-Xmx2048m -Xms512m -Dfile.encoding=UTF-8
# =======================================================
# 构建性能优化
# =======================================================
# 启用 Gradle 守护进程(默认 true)
org.gradle.daemon=true
# 启用并行构建(多项目时显著加速)
org.gradle.parallel=true
# 启用构建缓存
org.gradle.caching=true
# 启用配置缓存(Gradle 8+ 推荐)
org.gradle.configuration-cache=true
# 按需配置(仅配置需要的子项目)
org.gradle.configureondemand=true
# =======================================================
# 日志与调试
# =======================================================
# 日志级别(quiet/warn/lifecycle/info/debug)
# org.gradle.logging.level=info
# 显示测试输出
# org.gradle.console=verbose
# =======================================================
# 网络代理(如需翻墙)
# =======================================================
# systemProp.http.proxyHost=proxy.example.com
# systemProp.http.proxyPort=8080
# systemProp.https.proxyHost=proxy.example.com
# systemProp.https.proxyPort=8080
# systemProp.http.nonProxyHosts=localhost|127.0.0.1|*.internal.com自定义项目属性
properties
# 项目版本信息
app.version=1.2.0
app.group=com.example
# 数据库配置(敏感信息放在用户级 gradle.properties)
db.url=jdbc:mysql://localhost:3306/mydb
db.username=root在 build.gradle.kts 中使用:
kotlin
// 委托语法(属性不存在时编译报错)
val appVersion: String by project
val dbUrl: String by project
// 安全读取(属性不存在时返回 null)
val appVersion = project.findProperty("app.version") as String? ?: "0.0.1"敏感信息处理
不要将密码、API Key 等放入提交到 Git 的 gradle.properties!
推荐做法:
properties
# ~/.gradle/gradle.properties(用户级,不提交)
mavenCentralUsername=your-username
mavenCentralPassword=your-password
signingKey=your-gpg-keykotlin
// build.gradle.kts 中安全读取
val mavenUsername = providers.gradleProperty("mavenCentralUsername")
val mavenPassword = providers.gradleProperty("mavenCentralPassword")
publishing {
repositories {
maven {
credentials {
username = mavenUsername.orNull
password = mavenPassword.orNull
}
}
}
}