Постройте Gradle getProperties перед запуском уже выполненной задачи - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь использовать проект Java, Serenity-BDD с Gradle версии 4.8+, но приложение не получает аргументы CLI -Denvironment и -Dservicebranches.У меня есть эти свойства как пустые значения в моем файле local.properties, и они не получают назначения при запуске моего приложения.

  • . / Gradlew --build-cache build -Dwebdriver.remote.url = $ {SELENIUM_REMOTE_URL} -Denvironment = $ {ENVIRONMENT} -Dservicebranches = $ {SERVICE_BRANCHES} -Dtags = $ {TAGS}

У меня есть файл local.properties со свойствамикоторые успешно внедряются в проект (через Serenity-Spring).Я надеюсь, что эти аргументы CLI переопределят эти значения:

servicebranches=
environment=local

Но сейчас все, что указано в аргументах CLI, не передается в проект.Либо через DI, либо через явный захват переменных окружения в build.gradle, что я не пытался сработать.

Вот несколько вещей, которые я попробовал в build.gradle:

//task integrationTests() {
//    doFirst
//        {
//            def environment = System.getProperty('environment')
//            def servicebranches = System.getProperty('servicebranches')
//        }
//    tasks.build.execute()
//}
//integrationTests.dependsOn(build)

//build.doFirst{
//    systemProperties System.properties
//    def environment = System.properties['environment']
//    environment = environment //This actually flags with 'Silly assignment'
//}

build.doFirst{
    def environment = System.getProperty('environment')
    def servicebranches = System.getProperty('servicebranches')
}

В последнем, кажется, все еще отсутствует шаг, потому что программа все еще работает, но аргументы все еще не проходят.Я даже пытался -Denvironment = potato, и никаких ошибок не возникало, потому что у меня нет файла свойств или свойств с таким именем.

Я также пытался использовать тег -P вместо тега -D, но это, похоже, тоже не работает.

Все, что я пытаюсь сделать, это использовать build.gradle для использования System.getProperty ('environment') и System.getProperty ('servicebranches') доЯ использую уже созданную задачу «сборки», которая поставляется с Serenity.Как бы я это сделал?Собрать ли мне новую задачу, где я использую эти getProperties, и затем вызвать задачу сборки?Нужно ли указывать назначение этих одноименных переменных в файле local.properties?

1 Ответ

0 голосов
/ 20 сентября 2018

-D для системных свойств в Gradle.Попробуйте вместо этого использовать -P (https://docs.gradle.org/current/userguide/build_environment.html#sec:project_properties)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...