Skip to content

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-key
kotlin
// build.gradle.kts 中安全读取
val mavenUsername = providers.gradleProperty("mavenCentralUsername")
val mavenPassword = providers.gradleProperty("mavenCentralPassword")

publishing {
    repositories {
        maven {
            credentials {
                username = mavenUsername.orNull
                password = mavenPassword.orNull
            }
        }
    }
}

下一步