gradle - 在 Gradle 中从外部文件声明依赖项
问题描述
我正在寻找一种方法来在 Gradle 5.2 的外部文件或主构建文件中强制执行子项目的所有依赖版本。这将类似于 Java-Platform 插件中的新约束功能,但据我所知,这不仅需要在单独的文件中声明,而且需要在单独的项目中声明(然后仅包含该项目的构建文件) )。
有没有办法做到这一点?到目前为止,我已经成功地使用 java-platform 插件制作了一个 PoC,如下所示:
文件结构:
- 根 A. 平台 B. 子项目 1 c。子项目 2
根构建文件:
project.ext {
javaProjectList = subprojects.findAll{
it.name != 'platform'
}
}
configure(project.javaProjectList) {
apply plugin: 'java'
}
subprojects{
repositories {
jcenter()
}
}
平台构建文件:
plugins {
id 'java-platform'
}
dependencies {
constraints {
api 'commons-httpclient:commons-httpclient:3.1'
runtime 'org.postgresql:postgresql:42.2.5'
}
}
子项目 1(和 2):
dependencies {
compile platform(project(':platform'))
compile 'commons-httpclient:commons-httpclient'
}
我想要的是类似的东西......
根/dependencies.versions:
dependency1.version1
dependency2.version3
{etc.}
根/build.gradle:
dependencies {
constraints {
for { line in dependencies.versions ->
api 'line'
}
}
}
请原谅语法。
解决方案
我没有找到删除单独平台项目要求的方法,但是通过属性文件读取约束很简单。
推荐阅读
- asp.net-mvc - 常用实用方法
- python - 您必须使用 dtype double 和 shape [25,25] 为占位符张量“Placeholder_2”提供一个值
- python - DFS 的 Cython 并行化竞争条件
- flutter - 如何使用 Flutter dart 运行计时器?
- javascript - Razorpay 集成。问题:请提供您的 api 密钥以进行身份验证
- ios - UserDefaults UIButton 状态有时加载不正确
- xcode - Xcode 11 无法创建 Mac 应用分发证书
- ios - 在 ViewController 中设置 TableView 和 collectionView
- c# - XML 声明包含换行符而不是双引号 - 在 C# 中创建 xml 文档时
- python - Apache spark中两个简单rdd的协方差