Gradle 任务不应自动执行

2024-07-03

我在 gradle 中定义一个任务:

task releaseCandidate(type: Exec) {
    commandLine 'git', 'checkout', 'develop'

    // Increment version code in Manifest
    String manifest = new File('AndroidManifest.xml').getText('UTF-8')
    Pattern pattern = Pattern.compile('android:versionCode="([0-9]+)"')
    Matcher matcher = pattern.matcher(manifest)
    matcher.find()
    int newVersionCode = Integer.parseInt(matcher.group(1)) + 1
    manifest = manifest.replaceAll(
        "android:versionCode=\"([0-9]+)\"", "android:versionCode=\"$newVersionCode\""
    )
    new File('AndroidManifest.xml').write(manifest, 'UTF-8')

    commandLine 'git', 'diff'
}

我只想在我明确调用它时执行gradle releaseCandidate. 但是,当我运行任何其他任务时,例如gradle assembleDebug,它还运行任务发布Candidate。我不希望这种行为发生。没有任务取决于候选版本,反之亦然。

我的项目是一个Android应用程序,所以我使用androidgradle 插件。


一个常见的陷阱。向任务添加操作,否则代码将在配置阶段运行。带操作的示例任务:

task sample << {
}

正如我所见,您宁愿需要编写自定义任务而不是使用Exec类型。我认为定义是无效的commandLine twice.

EDIT

你可以阅读this https://blog.softwaremill.com/my-task-whats-wrong-with-your-gradle-task-82312100c595发布帖子以了解其工作原理。

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

Gradle 任务不应自动执行 的相关文章

随机推荐

  • 使用 Graph API Explorer 时 Facebook Oauth 访问令牌不同

    免责声明 本文中的 access tokens 和 appIds 是假的 只是为了look real 我正在尝试使用以下调用生成 access token 这给了我一个以下格式的access token access token 12345
  • 在 Clojure 中创建 tribonacci 数

    我想知道是否有人能够帮助我创建一个函数 该函数将给定一个数字 然后返回与该数字对应的 tribonacci 数字 10 将返回 44 15 将返回 927 一般来说 您应该展示您已经尝试过的内容 然后让我们知道您遇到的问题 以便我们可以为您
  • 处理大位图(平铺小位图来创建壁纸)

    我遇到内存问题 认为这可能与创建大位图有关 当前的任务是获取相当小的平铺图像并创建更大的平铺图像并将其设置为手机壁纸 我这样做的方法是 1 创建一个 2 屏幕宽度 1 屏幕高度的视图 2 将视图背景设置为BitmapDrawable 并将平
  • 在 Mono 上运行 eBay C# SDK 时出现未处理的异常

    我下载了 eBay SDK 以在我们正在开发的内部应用程序中使用 问题是我们正在 Mono 上进行开发 当我在 NET 上运行 eBay Hello World 示例时 它显示以下输出 Welcome to eBay SDK for Net
  • 修剪字符串末尾的字符串

    你好 我想删除 C 句子中的最后一个单词 这是我的查询 SELECT FROM People WHERE City City AND County County AND 我想以编程方式删除最后一个 AND 我该怎么做 谢谢 string m
  • 从 DLL 及其关联的导入库中删除导出的符号 (VS8)

    有没有办法对 DLL 及其 lib 文件进行后处理 以删除我不想要的符号 背景 DLL 的代码使用 boost serialization 它可以导出 很多很多 符号 显然 这是为了使链接器不会忽略未引用但在初始化时具有重要副作用的静态对象
  • Knockout.js - 数据绑定上的 JavaScript 函数

    有没有一种方法可以在数据绑定上调用 JavaScript 函数 如下所示 span span 我想做的是使用我的视图模型的 SomeProperty 值调用 MySomeFunction 我的 SomeFunction 将根据传递的值返回一
  • 如何强制 F[_] 成为 Monad 的实例

    我有以下类定义 final case class Creator F topic String discovery ServiceDiscovery F implicit sync Sync F import JsonDeserialize
  • 运行 docker 容器:iptables:没有该名称的链/目标/匹配

    我正在尝试运行容器 但遇到以下问题 Error response from daemon Cannot start container b005715c40ea7d5821b15c44f5b7f902d4b39da7c83468f3e5d7
  • Android 中用于发送推送通知的协议

    我想知道哪个协议用于向 Android 设备发送推送通知以及哪个协议用于向 GCM 发送推送通知请求 是 HTTP HTTPS 还是其他什么 第三方服务器和 GCM 服务器 HTTP 或 XMPP 之间的通信协议已经在其他答案中提到 GCM
  • 如何在 Jersey Rest 中忽略 JSON 对象以及属性编辑

    作为我的要求的一部分 我公开了一个 Web 服务 该服务将 Employee 类作为 JSON 格式的输入 员工类别如下 如果您看到类中有 3 个属性 例如状态 密码 创建时间 现在我试图阻止用户提供状态和创建时间等属性 我的意思是说我不想
  • 将 WeakEventManager 与静态事件结合使用

    是否可以使用 Wea kEventManager 在静态事件上创建弱事件侦听器 我想在静态 CompositionTarget Rendering 事件上创建一个弱事件侦听器 以避免当我不知道 WPF Silverlight 源元素的生命周
  • Heroku 找不到 webapp-runner.jar

    我有一个 Spring Web 应用程序 我想将其部署到 Heroku 这是 pom xml
  • 如何更改输入文件浏览按钮的文本和颜色?

    我将输入文件设计为
  • 并行运行 Python 脚本并等待所有脚本完成后再执行更多并行脚本

    我需要并行执行 Python 脚本 因此我使用以下批处理文件 start python C myfolder 1 py start python C myfolder 2 py start python C myfolder 3 py 它工
  • UITableView背景图片

    我正在尝试设置一个 png 图像作为我的桌面视图的背景 使用以下代码一切都很好 但仅限于 iPhone 模拟器 如果我尝试在 iPhone 设备上运行该应用程序 表格视图的背景将保持白色 或透明 你认为这与我尝试设置背景颜色的方式有关吗 我
  • jScrollPane:边距问题

    jScrollPane 的边距问题似乎有点棘手 尝试在 jsp 内的每个元素和实际的 jsp 元素上设置 margin 0 我附上一张图片来向您展示该问题 问题是内容和实际滚动条之间的小黑色条纹 JSP 中类的 CSS width 100
  • 索引超出了数组 C# 的范围

    我有一个数组size 5 我向该数组添加了 5 个值 然后删除了这些值 现在我的数组只有一个值 如果我向该数组添加另一个值 它会显示错误Index was outside the bounds of the array 如果您有一个大小为
  • Android 在每个连接间隔接收多个 BLE 数据包

    我有一个设备通过 BLE GATT 特性将数据传输到我的 Android 4 4 2 设备在每个连接间隔发送多个 20 字节数据包 其中每个数据包都有一个序列号 假设设备在每个连接间隔发送 4 个数据包 如图所示 sq1 sq2 sq3 s
  • Gradle 任务不应自动执行

    我在 gradle 中定义一个任务 task releaseCandidate type Exec commandLine git checkout develop Increment version code in Manifest St