Компилировать зависимости динамически на основе spring.profiles.active - PullRequest
0 голосов
/ 30 мая 2018

Может кто-нибудь подсказать мне, с чего начать эту задачу?

Мне бы просто пришлось исключить spring-boot-starter-tomcat при развертывании в jboss.

Я думаю, это будет выглядеть примерно так:

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web"){
        if(getProperty "spring.profiles.active" == "qat")
            exclude module: "spring-boot-starter-tomcat"
    }
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

С примером выше, яполучить ошибку:

Could not get unknown property 'spring.profiles.active' for DefaultExternalModuleDependency{group='org.springframework.boot', name='spring-boot-starter-web', version='null', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency.

Может быть, я мог бы создать пользовательскую задачу, чтобы установить spring.profiles.active на задачу.ПОМОГИТЕ! * * 1013

1 Ответ

0 голосов
/ 31 мая 2018

Как отметил Питер Ледбрук, gradle не имеет доступа к application.yml Spring-boot во время компиляции.И dependencies запускается очень рано в жизненном цикле Gradle, так что задача никогда не вызывается до того, как dependencies решены.

Даже попытка стратегии разрешения зависимостей была бесполезной.

Так что мне просто нужно было сделать:

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web") {
        if(System.getProperty("spring.profiles.active") == "qat"){
          exclude module: "spring-boot-starter-tomcat"
        }
    }
    compile("org.springframework.boot:spring-boot-starter-security")
    if(System.getProperty("spring.profiles.active") == "qat"){
        providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
    }
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

Тогда я наберу gradle build -Dspring-profiles-active=qat при развертывании в jboss.и gradle bootRun -Dspring-profiles-active=dev, когда мне нужно бежать локально.

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