【发布时间】:2014-11-19 08:36:56
【问题描述】:
如何使用 travis-ci 环境变量作为 Gradle 的属性?
我的 gradle.properties 在本地的 gradle 路径下有:
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 变量用作 Graable 属性但也有本地构建?
【问题讨论】:
-
Travis 的环境变量是否设置为环境变量?我会尝试
def repo = sonatypeRepo ?: System.getenv('sonatypeRepo')。第一部分应该在本地工作,第二部分应该在 Travis 上工作。 -
@Opal travis' bash 导出它,所以它应该可用。我尝试了
repository(url: sonatypeRepo ?: "$System.env.sonatypeRepo") {}没有成功,会尝试更多。 -
问题是 Travis 设置的变量是否可以通过
System.env读取。在詹金斯是。这也可能是另一个问题。您需要检查 Travis 究竟是什么sonatypeRepo属性返回。如果它存在于gradle.properties并且它是空的,它可能会通过,因为它存在。 -
@Opal 确实。使用上述 elvis var 构造函数设置参数使其通过。我仍然不确定 Travis 是否读取了变量。
-
print将System.env的结果输出到标准输出。
标签: gradle android-gradle-plugin travis-ci sonatype