gradle 在父任务中使用在子任务中定义的变量

2023-11-21

我有一个多项目 gradle 构建,我在父构建中声明一个任务,该任务使用在子项目中声明的变量(该值可以根据子项目而变化)。但是,我在配置阶段收到错误,该变量不存在。我的设置看起来像

build.gradle(顶层)

subprojects {
   myTask {
     prop = valueDefinedInChild
   }

}

And then

build.gradle(子项目)

valueDefinedInChild = 'someValue'

有没有办法正确地做到这一点?


有一种方法可以做到这一点(project.evaluationDependsOnChildren()),但我建议仅将其用作最后的手段。相反,我会在顶层配置共性,并在子项目级别配置差异:

build.gradle(顶层):

subprojects {
    task myTask { // add task to all subprojects
        // common configuration goes here
    }
}

build.gradle(子项目):

myTask {
    prop = 'someValue'
}

避免重复的另一种方法是将公共代码分解为单独的脚本,并让子项目将其包含在apply from:。当逻辑仅适用于选定的子项目时,或者在需要避免父项目和子项目之间耦合的情况下(例如,当使用 Gradle 的新功能时),这是一个不错的选择按需配置特征)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gradle 在父任务中使用在子任务中定义的变量 的相关文章

  • 如何在gradle中为ant xjc任务指定多个绑定文件

    我在 gradle 项目中有多个绑定 xjb 文件 为 xsd C xsd 生成 JAXB 类时 我想使用之前为 A xjb 和 B xjb 生成的绑定文件 因为 C xsd 引用 A xsd 和 B xsd 如果我在同一路径中没有任何其他
  • 使用 Gradle 构建 Kotlin + Java 9 项目

    我对 Gradle 老实说 还有 Java 9 相当陌生 我正在尝试使用 Gradle 构建一个混合了 Java 9 和 Kotlin 的简单库项目 更详细地说 Java中有一个接口 Kotlin中有一个实现 我会用 Kotlin 做所有事
  • fastlane 找不到 gradlew 文件?

    尝试为我的 Android 项目启动并运行 fastlane 我的项目目录中有 fastfile 和 appfile 但是当我的 Lane 执行 gradle 操作时 它失败并出现以下错误 在路径 Users MyUser Document
  • Gradle 任务语法:从 Groovy 角度如何解释?

    我很难理解 Gradle 的 Groovy DSL 的工作原理 不幸的是 Gradle 是我在日常工作中遇到的 Groovy 的主要用例 而且我注意到对于许多开发人员来说 他们接触 Groovy 的方式完全是通过 Gradle 因此 大多数
  • 无法在 Gradle 中创建 Zip 存档

    我正在尝试创建一个简单的 Zip 存档 其中包含资源目录中的所有 javascript 文件 这是代码 task zip type Zip from resources include js into resources 由于某种原因 这似
  • wagon-git 和 Gradle

    这个不错的小工具承诺帮助我将工件上传到私人 Bitbucket 存储库 http synergian github io wagon git bitbucket html http synergian github io wagon git
  • Gradle:找不到受信任的证书

    我正在尝试使用 Gradle 在 Ubuntu 服务器上构建我的 Android 项目 在我的 Windows 10 PC 上使用 Android Studio 构建工作正常 但使用 gradlew build or gradlew cle
  • Gradle 的钩子何时添加到构建生命周期中?

    Gradle 中有很多 hooks 但我无法准确理解它们何时应用 从文档中我找到了用于构建和项目的钩子 添加监听器 监听器 项目结束后 关闭 项目之前 关闭 构建完成 关闭 设置已评估 关闭 任务图 whenReady 项目已加载 对于项目
  • Android 设备监视器未出现

    当我单击 Android Studio 中的 ADM 图标时 我在日志中收到以下错误 我看到这里已经有一个关于此问题的线程 但解决方案似乎是针对 Eclipse 的 但是 今天 gradle 方面出现了一些问题 因此我在属性文件中将 htt
  • gradlew:appengineEnhance 失败

    我正在使用 Java 创建移动后端Google App Engine with Android Studio 为了启动公开我的 API 的本地服务器 我使用gradlew module name appengineRun 然而 当我去htt
  • 具有共享日志配置的 Gradle 多项目

    是否有一种标准方法可以在 gradle 项目布局中的所有子项目之间共享日志记录配置 例如 log4j 或 logback 我现在做的就是复制一份logback xml or log4j properties in src main reso
  • 尝试在 Android 上使用 FFMPEG。编译但是还是不行

    首先 我尝试使用 ffmpeg 将图像数组编译成 Android 上的视频 我已经遵循了各种在线教程 并且已经能够编译 Android 的库 但仍然需要项目运行 我现在使用的存储库可以在这里找到 https github com Batte
  • 如何找出每个包含的库的最低 api 级别

    我的项目中包含了很多库 Android Studio 2 0 Preview 4 我想找出它们每个的最低 Android SDK 级别 是否可以不用谷歌搜索每个图书馆的信息 如果您有源形式的库 例如 作为项目中的库模块 请查看其清单 如果您
  • 无法使用 docker build 运行 gradle 包装器

    我有这个小构建 FROM eclipse temurin 17 jdk as build java COPY java project root project WORKDIR root project RUN chmod x gradle
  • 如何在 Android Studio 中停止 Gradle 任务执行?

    Android Studio 中是否有停止 Gradle 任务执行的合法方法 您可以致电 gradlew stop在终端中 它将杀死所有 Gradle 进程
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 让两种口味使用相同的sourceSet

    我有两种风格 demo 和 full 每种风格都有自己的源集在 src demo 和 src full 中 这很好用 我现在想做第三种使用这些源集之一的风格 我该怎么做呢 我尝试过类似的东西 productFlavors full appl
  • 如何将 Gradle 脚本插件变成二进制插件

    我有一堆像这样的 gradle 脚本插件https github com docToolchain docToolchain blob master scripts exportExcel gradle https github com d
  • 无法通过usb调试安装android应用程序

    我知道这是一个老问题 但我第一次尝试在 Redmi note 4 上安装我的应用程序 每当我尝试安装时 它都会显示一个对话框 安装失败 并显示消息无法建立会话 通过卸载现有版本的 apk 如果存在 然后重新安装 可能可以解决此问题 警告 卸

随机推荐

  • 无法在 WorkManager 中设置自定义工作工厂

    我使用此代码来设置我自己的工人工厂 val daggerWorkerFactory DaggerWorkerFactory toInjectInWorker val configuration Configuration Builder s
  • 如何通过 3d 到 2d 点对应估计相机位姿(使用 opencv)

    你好 我的目标是发展用于飞机 模拟器 驾驶舱的头部跟踪功能 以提供AR支持民用飞行员在视觉条件较差的情况下着陆和飞行 我的方法是检测我知道其 3D 坐标的特征点 在黑暗模拟器 LED 中 然后计算估计的 头戴式相机的 姿势 R t 旋转与平
  • 如何在 Matlab 中从 3D 矩阵制作视频

    我在 matlab 中有一大堆 2D 矩阵 它们应该组成一个 3D 矩阵 其中第三维是时间 我正在尝试从图像数据制作视频 我知道我可以使用 surf 使用二维矩阵之一制作曲面图 但我不确定要调用哪个命令来获取所有二维矩阵并将它们转换为曲面图
  • 带有自定义 ListView 的 DialogFragment

    我正在尝试创建一个 DialogFragment 它显示一个带有自定义 ListView 的对话框 public class MultiSelectDialogCustom extends DialogFragment ListView m
  • 如何使用流减少保留所有列表列表

    我面临以下问题 我有一个列表列表 我只想保留所有列表 我正在尝试处理流 private List
  • 如何在每次单击按钮时旋转 imageview 中的图像?

    这是java代码 我从图片库获取图像 我有一个按钮和一个ImageView 它只旋转一次 当我再次单击按钮时 它不会旋转图像 public class EditActivity extends ActionBarActivity priva
  • 为什么我无法使用 AT 命令接收短信?

    我想使用 AT 命令从我的电脑向我的手机发送 接收短信 我使用 USB 端口将手机连接到电脑 我的计算机检测到调制解调器 并且我能够从计算机向手机发送短信 但是我的电脑收不到短信 我正在展示我从 AT 编辑器获得的示例 AT CMGF 1
  • 如何在Xaml中单击时更改按钮内容?

    我有名为 保持按钮 的按钮内容 一旦我单击按钮 按钮内容应更改为 恢复 再次如果按下 恢复 按钮 则意味着 保持 应可见 XAML 代码
  • Intent 和 setContentView 之间的区别

    在我的主要活动中 加载视图作为意图或使用 setContentView 之间有区别吗 public class MainActivity extends Activity Override public void onCreate Bund
  • 理解 matplotlib 顶点

    我正在尝试在 matplotlib 中为散点图创建自定义标记 其中标记是具有固定高度和变化宽度的矩形 每个标记的宽度是 y 值的函数 我尝试过这样使用这段代码作为模板并假设如果给定 verts 一个 N 二维元组的列表 它会绘制具有相应第一
  • TSQL:如何将本地时间转换为UTC? (SQL Server 2008)

    我们正在处理一个需要处理来自不同时区和夏令时设置的全球时间数据的应用程序 这个想法是在内部以 UTC 格式存储所有内容 并且仅针对本地化用户界面来回转换 SQL Server 是否提供任何机制来处理给定时间 国家 地区和时区的翻译 这一定是
  • 杰克逊未填充所有属性

    我正在研究一个简单的例子Jackson library转换一个json串回Java object但我看到我的 java 对象上只设置了很少的属性 而不是所有属性 这是我的代码 import java io BufferedReader im
  • Linux 上的 C 异步、定时函数调用?

    Linux 上的 C 语言在一定延迟后异步调用函数的最简单 最有效的方法是什么 如 JavaScript 的setTimeout 或设置一个重复计时器定期调用它 类似于setInterval 虽然这个问题适用于Linux 但我希望有一种跨平
  • C# Virtual 和 Override 的内部工作原理

    C 虚拟和重写机制如何在内部工作的话题已经在程序员中讨论得死去活来了 但是在谷歌上半小时后 我找不到以下问题的答案 见下文 使用简单的代码 public class BaseClass public virtual SayNo return
  • Python PILLOW 的点线或短划线

    如何使用 Python PILLOW 绘制点划线或虚线或矩形 谁能帮我 使用 openCV 我可以做到这一点 但我想用 Pillow 来实现 感谢 martineau的评论 我弄清楚了如何绘制虚线 这是我的代码 cur x 0 cur y
  • PresentModalViewController 不工作

    这是我的代码 ViewController vc ViewController alloc initWithNibName TableView bundle nil self navigationController presentModa
  • 自动上传 ProGuard 映射文件到播放控制台

    每次我需要构建新版本的 apk 时 将 ProGuard 映射文件上传到 google play 控制台是非常烦人的 我的 gradle 构建为每个版本生成 4 个不同的 apk 所以我确实需要上传 4 个不同的映射文件 我想知道是否可以自
  • 如何使用 telethon 在 telegram 中搜索群组和频道?

    I use telethon用于使用 python 脚本向 telegram 发送消息 我在电视马拉松中没有找到任何东西来搜索我喜欢用来在电报应用程序上搜索的群组和频道 请看图片 我如何使用电视马拉松获得这样的列表 使用您的秘密创建文件 c
  • 为什么无论我做什么都无法更改复选框颜色? [复制]

    这个问题在这里已经有答案了 我尝试设置复选框背景颜色的样式 但它不会改变我所做的任何事情 我使用的是最新的 Firefox 29 css 或浏览器中是否有一些规则更改 CSS input type checkbox background 9
  • gradle 在父任务中使用在子任务中定义的变量

    我有一个多项目 gradle 构建 我在父构建中声明一个任务 该任务使用在子项目中声明的变量 该值可以根据子项目而变化 但是 我在配置阶段收到错误 该变量不存在 我的设置看起来像 build gradle 顶层 subprojects my