gradle - 从Git下载属性文件并在gradle中执行任何任务之前加载

标签 gradle build.gradle

我有3个存储库常见的test.properties文件。因此,我在git中 checkin 代码。可以说我有testA,testB和testC作为三个仓库。
现在我希望testA应该首先下载test.properties并加载它。那么所有任务都应引用属性值。
我该如何在gradle中做到这一点?

最佳答案

您是否考虑过将其下载到Properties对象,然后使用其中的属性填充test { systemProperties['myProp'] }
伪代码可能看起来像这样:

tasks.create('downloadTestProperties') {
    def props = new Properties()
    doFirst {
        def stream = "http://myurl/test.properties".toURL().openStream()
        props.load(stream)
        stream.close()
        outputs.properties.put('myTestProps', props)
    }
}

tasks.withType(Test) { testTask ->
    def downloadTask = tasks.findByName('downloadTestProperties')
    testTask.dependsOn downloadTask
    Properties testProps = downloadTask.outputs.properties.get('myTestProps') as Properties
    testProps.each {
        testTask.systemProperties[("$it.key")] = (it.value)
    }
}

关于gradle - 从Git下载属性文件并在gradle中执行任何任务之前加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743633/

相关文章:

java - Gradle:在顶级构建文件与模块构建文件中声明依赖关系?

java - Gradle 构建在 :compileJava: `No matching variant` 处失败

gradle - 如何在gradle上传递系统系统属性 “-D”

android - 类描述符 'Landroid/support/customtabs/ICustomTabsCallback/;'不能用dex格式表示

java - Gradle 在 Eclipse 项目中找不到服务器运行时

Gradle:无法从外部构建脚本配置 Artifactory

gradle - 创建在任务列表中不可见的私有(private) Gradle 任务

hibernate - Camel -将csv文件加载到数据库中-在文件名中包括日期作为额外的列

gradle - 为什么包含特定的 jar 文件?

android - Gradle 版本 2.10 是必需的。当前版本是 2.8 错误