Я пытаюсь сделать что-то по общему признанию.Я определил один проект Gradle для веб-приложения и хотел бы создать несколько выпусков этого проекта, в которых каждый выпуск использует разные версии определенных зависимостей.Кроме того, я хотел бы спроектировать это таким образом, чтобы эти версии могли исходить из некоторого динамического источника (например, пользовательского ввода) вместо чего-то, жестко закодированного в файле.
Например, я хочу написать приложение Spring MVC и собрать его для нескольких версий org.springframework: spring-webmvc: 4.3. *.Цель системы состоит в том, чтобы создавать тестовые приложения для популярных веб-фреймворков, с помощью которых я могу тестировать совместимость с инструментом.
Я хочу эффективно достичь с Gradle того, что делает следующий bash
for version in 4.3.12 4.3.13 4.3.14; do
./gradlew war -PspringVersion=$version
done
И build.gradle использует springVersion
при определении зависимостей
dependencies {
compile "org.springframework:spring-aop:${springVersion}",
"org.springframework:spring-context:${springVersion}",
"org.springframework:spring-beans:${springVersion}",
"org.springframework:spring-context-support:${springVersion}",
"org.springframework:spring-core:${springVersion}",
"org.springframework:spring-expression:${springVersion}",
"org.springframework:spring-web:${springVersion}",
"org.springframework:spring-webmvc:${springVersion}",
"javax.servlet:jstl:1.2",
"javax.servlet:javax.servlet-api:3.1.0"
}