Переменные среды Travis CI с свойствами Gradle

Как использовать переменные travis-ci env в качестве свойств 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

Как я могу использовать переменную env Travis как свойство Grable , но также имеет локальную сборку?

Ответ 1

Я тоже наткнулся на это.

Вот как я заработал:

В моем 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.

В принципе, как упоминалось ранее, если свойство "есть"; gradle использует его, в противном случае запрашивает для него среду. В моем случае была нужна проверка 'hasProperty()', чтобы travis не генерировал свойство, не найденное исключение.....

НТН...