从属性文件中读取gradle存储库凭据的最佳方法是什么?

时间:2014-12-01 21:45:46

标签: maven gradle build.gradle

我不清楚在gradle执行/配置链中登录存储库的位置

我有一项任务

loadMyProperties {
    Properties props = new Properties()
    props.load(new FileInputStream(MyPropertiesFilename))
    myusername =  props.getProperty('user')
    mypassword = props.getProperty('password')

}

我让编译依赖它

compileJava.dependsOn loadProperties

但是,我不确定存储库何时阻止

repositories {
    maven {
            credentials {
                    username myusername
                    password mypassword
            }
            url myurl               
    }
}

与其他任务相比“执行”,也不会尝试使用提供的凭据获取指定存储库的授权。我跑的时候

gradle build

有时凭据有效,有时他们没有(我从maven服务器收到401授权错误),这让我觉得我没有正确地订购我的任务。

我的想法是loadProperties代码在配置阶段发生(因为它不在doFirst,doLast或<<中,因此不在执行阶段),但我不确定如何确保它在存储库块尝试保护授权之前发生。

一种可能的解决方法是使用gradle.properties文件并在其中定义myusername和mypassword,但希望了解如何正确使用其他属性文件,而不必依赖gradle.properties。

1 个答案:

答案 0 :(得分:1)

加载属性文件是一种配置行为,应该在任何任务之外完成。