gpt4 book ai didi

gradle - 使用不同的依赖版本重复gradle构建

转载 作者:行者123 更新时间:2023-12-03 04:20:57 25 4
gpt4 key购买 nike

我正在尝试做一些附带的事情。我已经定义了一个Web应用程序Gradle项目,并且我想构建该项目的多个发行版,其中每个发行版都使用不同版本的特定依赖项。此外,我希望以此方式设计这些版本,使其可以来自某些动态源(例如用户输入),而不是来自文件中的硬编码。

例如,我想编写一个Spring MVC应用程序,并针对许多不同的org.springframework:spring-webmvc:4.3。*版本构建该应用程序。系统的目的是为流行的Web框架构建测试应用程序,我可以使用它们测试工具的兼容性。

我实际上想通过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"
}

最佳答案

我已经找到了一个解决方案,该解决方案是在settings.gradle中动态构建子项目-示例项目https://github.com/gilday/how-to-gradle-project-variations

使用settings.gradle为每个项目动态生成子项目
我们要构建的Web应用程序的变体。

| how-to-gradle-project-variations
├── app
├── build.gradle
├── settings.gradle
└── variations

“app”目录包含Web应用程序项目
app/
└── src
└── main
└── java
└── com
└── johnathangilday
└── HelloWorldServlet.java

settings.gradle为每个版本的变体生成一个子项目
我们要用来构建此项目的servlet-api依赖项
// define versions of javax.servlet:servlet-api for which to generate 
variations of the app
def variations = ['2.3', '2.4', '2.5']

def projects = variations.collect { "${rootProject.name}-${it}" }

// include the app subproject with the servlet definitions include('app')
// include a subproject for each variation of the servlet-api
include(*projects)
/.gradlew projects向我们展示了在
“变体”目录
$ ./gradlew projects

> Task :projects

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'how-to-gradle-project-variations'
+--- Project ':app'
+--- Project ':how-to-gradle-project-variations-2.3'
+--- Project ':how-to-gradle-project-variations-2.4'
\--- Project ':how-to-gradle-project-variations-2.5'

关于gradle - 使用不同的依赖版本重复gradle构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com