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

时间:2017-05-02 17:10:47

标签: gradle build.gradle

我有test.properties文件,这是3个存储库的常用文件。因此我在git中签入代码。让我说我有testA,testB和testC作为三个回购。 现在我想要testA首先下载test.properties,加载它。那么所有任务都应该引用属性值。 我怎么能在gradle中做到这一点?

1 个答案:

答案 0 :(得分:0)

您是否考虑过将其下载到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)
    }
}