摇篮 - 包括属性文件(Gradle - Include Properties File)

2019-06-26 15:43发布

我如何将包括摇篮属性文件?

例如,在蚂蚁,我可以做到以下几点:

<property file="${basedir}/build.properties" />

Answer 1:

你可以使用Java语法,如做到这一点:

Properties props = new Properties()
InputStream ins = new FileInputStream("/path/file.properties")
props.load(ins)
ins.close()

这应该在任何Groovy脚本工作。 有可能是这样做虽然,使用闭包或其它精美的快捷方式的更加“时髦”的生活方式。

编辑:“在”是常规的保留字。 变量不能被命名这种方式,它重命名为“INS”



Answer 2:

我真的建议使用摇篮的默认属性文件。 如果你把性质gradle.properties在同一目录中build.gradle ,他们会自动出现。

请参阅用户手册 。



Answer 3:

你propably正在寻找的是这样的:

    Properties props = new Properties()
    props.load(new FileInputStream("$project.rootDir/profile/"+"$environment"+".properties"))
    props.each { prop ->
      project.ext.set(prop.key, prop.value)
    }

然后,您的属性应该是直接通过他们的名字进行访问。 即:

  println "$jdbcURL"
  println project.jdbcURL

那里有可能是一个原因(阴影?)为什么它的一个坏主意,要做到这一点? 不知道为什么它不支持开箱即用,也可以在其他地方找到。



Answer 4:

这里是我包括我的.jar的.csv文件摇篮建立:

sourceSets {
  main {
    java {
      srcDir 'src/main/java'
      output.classesDir   = 'build/classes/main'      
    }
    resources {
      srcDir 'src/main/resources'
      include '*.csv'
      output.resourcesDir = 'build/resources/main'
    }
  }
}

然后,当我的应用程序加载的资源,那就是独立摇篮的完成。



Answer 5:

对于摇篮1.x的(不建议使用在摇篮2.X)

包括您的.properties文件你可以使用这样的事情:

    apply from: "version.properties"

这就是它!



Answer 6:

使用GRADLE_USER_HOME环境变量设置gradle产出的主目录。 放在那里gradle.properties文件和设置参数。

https://docs.gradle.org/current/userguide/build_environment.html

在用户的主目录中的属性文件已超过在项目目录属性文件的优先级。



Answer 7:

我一直没有引起人们蚂蚁缺失的这一特点,尤其是在属性替换类似work.dir=${basedir}/work 。 随着一些大的构建我执行大量的环境设置进行自动化测试的工作,也有一些任务,只是需要用户和环境的配置设置。 简单的“gradle.properties”是不够的,尤其是对于跨多个项目共享的设置。

我放在一起管理着一个合理的财产加载方案为例gradle这个文件: 负载properties.gradle 。 这使项目准确定义它的使用属性default-properties.gradle文件,并允许用户定义自己的本地设置覆盖它们。 因为阅读中的“属性”文件gradle这个脚本,您可以在他们额外的逻辑和值不仅限于字符串。

另外,它允许用于定义每个环境属性文件来使用(如“MAC”,或“詹金斯机”,或“远程”)通过在传递“-Penv =(ENV名)”参数,以摇篮。



Answer 8:

接受答案的工作,除非你想要的属性添加到项目中,因为这是第一个搜索结果我将添加我的解决方案,它在gradle这个3.x的工作 一个简单的方法来做到这一点是通过蚂蚁。

ant {
    property(file: 'properties.file')
}

如果你需要的财产,以驼峰式转换为方便您的脚本(记住基于点语法预计和实际对象的gradle中存在):

println "property value:{dot.property.from.file}" //this will fail.
def camelCaseProperty = project.getProperties().get("dot.property.from.file")
println "camelCaseProperty:${camelCaseProperty}"  //this wont fail

如果你需要一个默认值,如果它没有指定:

def propertyWithDefault = project.getProperties().get("dot.property.from.file","defaultValue");

通过这种方法,至少在的IntelliJ / Android的工作室时,IDE会将你的属性文件和脚本的gradle并添加完成后,参考检查等



文章来源: Gradle - Include Properties File
标签: gradle