gradle - gradle:在一些嵌套子项目之间共享变量
问题描述
考虑以下项目结构
根 |-build.gradle |-子项目1 | |-SubProj1A | | |-build.gradle | |-SubProj1B | | |-build.gradle |-子项目2 |-SubProj2A | |-build.gradle |-SubProj2B | |-build.gradle
所有子项目都依赖于Somelib
不同的版本:
Subprojects under SubProj1 -- version 1.1
Subprojects under SubProj2 -- version 2.2
所以问题是如何将变量传递给someVersion=1.1
SubProj1 下的子项目和 SubProj2someVersion=2.2
下的子项目?
解决方案
SubProj1
一种可能的解决方案是在子项目和SubProj2
根build.gradle
文件中声明版本变量。例如像这样:
subprojects.findAll { subproject -> subproject.name.equals('SubProj1') }
.each {subproject -> subproject.ext.libVersion = '1.1'}
subprojects.findAll { subproject -> subproject.name.equals('SubProj2') }
.each {subproject -> subproject.ext.libVersion = '1.2'}
然后就可以在同级子项目中获取SubProj1A
如下:
project.parent.ext.libVersion
推荐阅读
- xcode - ITMS-90747:没有代码的基本贴纸包,但 App Store Connect 认为其中有 32 位代码
- spring-boot - Spring Cloud Config:客户端不尝试连接到配置服务器
- sql - 如何在 SQL 中获取树中子节点的数量
- python - 仅显示条形图中当前存在的所需图例值
- c# - 根据 IsSelected True/False 动态更改 TabItem 图标颜色
- angular - Jest Angular 测试给出业力错误`发生未处理的异常:找不到模块'业力'`
- css - Bootstrap 4 - 当使用 4 张卡片的卡片组缩小屏幕时,如何在行之间拆分卡片?
- c# - 如何使用 Firebase、C# 在两个不同用户的分支上保存相同的 ID?
- flutter - 使用共享首选项的数据持久性
- ros - 运行 move_base 节点并从文本文件中获取成本图