Gradle 渐变:根据配置文件加载属性文件

Gradle 渐变:根据配置文件加载属性文件,gradle,Gradle,我想写一个gradle构建脚本,它可以在不同的环境中工作(开发、实时)。 在每个环境中,我必须加载不同的属性集(目标目录、数据库等) 是否有一种渐进的方式来读取依赖于环境或配置文件的属性文件?您可能需要查看 包括插件: plugins { id 'net.saliman.properties' version '1.4.2' } 创建属性文件: gradle-dev.properties 或 打电话给格雷德尔: gradle myTask -PenvironmentName=dev gr

我想写一个gradle构建脚本,它可以在不同的环境中工作(开发、实时)。 在每个环境中,我必须加载不同的属性集(目标目录、数据库等)


是否有一种渐进的方式来读取依赖于环境或配置文件的属性文件?

您可能需要查看

包括插件:

plugins {
  id 'net.saliman.properties' version '1.4.2'
}
创建属性文件:

gradle-dev.properties

打电话给格雷德尔:

gradle myTask -PenvironmentName=dev
gradle myTask -PenvironmentName=prod

还可以看看gradle的maven配置文件。

我也有同样的问题,但我使用spring并将其配置为从classpath:application.properties读取属性

在这种情况下,您可以使用java插件将其添加到gradle.build中

if (project.hasProperty('env')) {
    println "Target environment: $env"
    sourceSets.main.resources.srcDir "src/main/environment/$env"
}
此选项适用于基于环境的不同文件夹


因此,要基于环境“dev”添加资源,您应该有“src/main/environment/dev”文件夹(带有属性文件),并调用gradle:gradle myTask-Penv=dev

这就是解决方案。我只是想知道,gradle不支持开箱即用。你应该阅读整篇文章,这是一篇关于gradle属性处理的优秀文档。你有一个带有multi-env profile的小样本项目吗?这将为许多人节省大量时间
if (project.hasProperty('env')) {
    println "Target environment: $env"
    sourceSets.main.resources.srcDir "src/main/environment/$env"
}