如何将travis-ci env变量用作Gradle的属性?
我在Gradle路径下本地拥有gradle.properties:
sonatypeRepo = abcd
我的build.gradle
使用了哪个:
uploadArchives {
//more
repository(url: sonatypeRepo) {
// more
}
//more
}
当然它在当地有效。在travis我已经在设置下添加了变量,所以我看到了构建日志:
Setting environment variables from repository settings
$ export sonatypeRepo=[secure]
它失败了:
FAILURE: Build failed with an exception.
* Where:
Build file '/home/travis/build/Diolor/Swipecards/library/build.gradle' line: 49
* What went wrong:
A problem occurred evaluating project ':library'.
> No such property: sonatypeRepo for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
如何将Travis的env变量用作Grable属性但还具有本地构建?
答案 0 :(得分:24)
我也偶然发现了这一点。
这就是我开始工作的方式:
在我的build.gradle中
def uzer = hasProperty('blahUser') ? blahUser : System.getenv('blahUser')
def creds = hasProperty('blahPwd') ? blahPwd : System.getenv('blahPwd')
在我的$ HOME / .gradle / gradle.properties
中blahUser=batman
blahPwd=eatsworms
所以我需要这个用于travis-ci - 我不认为它有一个$ HOME / .gradle / gradle.properties的概念但你可以将环境变量添加到.travis.yml。
基本上,正如前面提到的,如果财产是'那么&#39 ;; gradle使用它,否则请求环境。在我的情况下,' hasProperty()'检查是必要的,因此travis不会生成未找到属性的属性.....
... h个
答案 1 :(得分:0)
在下面的示例中,通过从环境中获取值来定义项目属性,而不是局部变量(如果未定义)。
project.ext {
if (! project.hasProperty('some_prop')) {
some_prop = System.getenv('some_prop')
}
}
我想要一个项目属性,以便可以在本地和CI中使用它在我的spring-boot YAML文件中设置PW。