Как установить активный профиль пружинной загрузки в Gradle 4.7 - PullRequest
0 голосов
/ 03 июня 2018

В целом:
Я пытаюсь запустить задачу сборки Gradle для определенного профиля пружины, но у меня есть ошибка при прохождении следующего теста:

au.com.mnpd.security.JwtTokenUtilTest > generateToken_succeeds FAILED
java.lang.IllegalStateException
    Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException
        Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException
            Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException
                Caused by: org.springframework.beans.factory.BeanCreationException
                    Caused by: java.lang.IllegalArgumentException

test использует некоторые свойства из профиля spring development (, расположенного в application-development.yaml ).Но я не смог найти способ передать активный профиль команде сборки gradle.Я попробовал следующее, но опять та же проблема:

- gradlew -Dspring.profiles.active=development build

- gradlew -Pdevelopment build

Вопрос:
Есть ли способ передать активный профиль в gradle (v 4.7) build taskкак то, что применимо для задачи bootRun следующим образом:

bootRun {
        bootRun.systemProperty 'spring.profiles.active', 'development'
}

Примечание: Я пробовал то же самое для сборки, но build.systemProperty методне существует для задачи сборки.

Поскольку я новичок в учебе, я был бы благодарен, если бы вы могли поделиться со мной своими подлинными решениями.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Если вы используете Gradle Boot Run, вам нужно добавить это в файл build.gradle

bootRun {
    String activeProfile =  System.properties['spring.profiles.active']
    systemProperty "spring.profiles.active", activeProfile
}

и затем во время сборки вы можете использовать gradle bootRun -Dspring.profiles.active = test

или для сборки вы можете использовать gradle build -Dspring.profiles.active = тест

0 голосов
/ 04 июня 2018

То, что вы ищете, это настройка системных свойств для задачи Test, которая будет запускать ваши юнит-тесты:

test {
  systemProperty 'spring.profiles.active', 'development'
}

Отредактировано после комментария - оставьте исходный ответ ниже какэто все еще может быть полезно.

Gradle не знает, как bootRun предоставляет свои системные свойства.

Таким образом, вам нужно добавить конфигурацию в свой скрипт сборки, чтобывам нужна командная строка Gradle.

Что-то вроде:

bootRun {
    bootRun.systemProperty 'spring.profiles.active', "${springProfile}"
}

, а затем значение по умолчанию в gradle.properties:

springProfile = development

и, возможно, переопределение значенияв командной строке:

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