gpt4 book ai didi

android - 即使在同步期间也会执行自定义 gradle 任务

转载 作者:行者123 更新时间:2023-11-29 19:05:37 26 4
gpt4 key购买 nike

所以我确定这是一个非常愚蠢的错误,但我需要你的帮助,因为我不是 gradle 专家。

任务:从文件中读取 versionCode 添加 +1 并将其保存回来。

task executeOrderSixtySix {
def versionPropsFile = file('versionCodes.properties')
if (versionPropsFile.canRead()) {
def Properties versionProps = new Properties()

versionProps.load(new FileInputStream(versionPropsFile))

def versionNumber = versionProps['DEV_VERSION'].toInteger() + 1
versionProps['DEV_VERSION'] = versionNumber.toString()
versionProps.store(versionPropsFile.newWriter(), null)

// 'assembleDebug'

} else {
throw new GradleException("Nyeeeh on versionCodes.properties!")
}}

因此,当我必须执行内部删除时,我想先运行此任务,将 devVersion 编号增加 1,然后运行“组装”任务以构建所有 Artifact 。

问题:此任务会自行执行,即使我只是同步导致 versionCode 一直增加的 cradle 文件。

我不想在同步期间增加版本代码,只为 QAdrop 开发构建,当我还必须组装每个 APK 时。

能否请您帮帮我,告诉我为什么调用/执行此任务以及我可以阻止谁?

最佳答案

您的任务 block 中需要一个doLast block 。 build.gradle 文件是一个配置脚本,因此它读作在配置时声明任务并在执行时声明操作。

Anything done in the task either before or after the doLast block would be run during configuration time. The code in the doLast block itself runs at execution time.

task executeOrderSixtySix {
doLast {
def versionPropsFile = file('versionCodes.properties')
if (versionPropsFile.canRead()) {
def Properties versionProps = new Properties()

versionProps.load(new FileInputStream(versionPropsFile))

def versionNumber = versionProps['DEV_VERSION'].toInteger() + 1
versionProps['DEV_VERSION'] = versionNumber.toString()
versionProps.store(versionPropsFile.newWriter(), null)

// 'assembleDebug'

} else {
throw new GradleException("Nyeeeh on versionCodes.properties!")
}
}
}

引用:https://www.oreilly.com/learning/write-your-own-custom-tasks-in-gradle

关于android - 即使在同步期间也会执行自定义 gradle 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47361012/

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