下面是我放在build.gradle文件末尾的代码,试图增加versionCode以便暂存发行版。但是,当我运行./gradlew assembleDebug versionCode时,它也会增加..我做错了什么?

task('increaseVersionCode') {
    def manifestFile = file("src/main/AndroidManifest.xml")
    def pattern = Pattern.compile("versionCode=\"(\\d+)\"")
    def manifestText = manifestFile.getText()
    def matcher = pattern.matcher(manifestText)
    matcher.find()
    def versionCode = Integer.parseInt(matcher.group(1))
    def manifestContent = matcher.replaceAll("versionCode=\"" + ++versionCode + "\"")
    manifestFile.write(manifestContent)
}

tasks.whenTaskAdded { task ->
    if (task.name == 'generateStagingReleaseBuildConfig') {
        println "Task Name [$task.name]"
        task.dependsOn 'increaseVersionCode'
    }
}

最佳答案

任务在执行后应该做的所有事情都需要执行任务 Action 。使用doLast { /* code goes here */ }添加了一个任务 Action 。任务操作外部的代码配置任务,并在“解析”构建脚本的过程中在每次构建调用上运行。

10-07 16:59