gradle2.x升級到3.3 編譯不過問題

gradle升級到3.3 DefaultManifestParser 編譯不過

問題描述

在從gralde 2.x版本升級至3.3時,發現有編譯不過的問題android

問題1

assembleRelease.doFirst找不到。相應的doLastassembleDebug同理app

// 原gradle2.x 版本代碼
assembleRelease.doFirst {
    if (!project.hasProperty('RELEASE_PATH')) return;
    if (localPack) return;

    gReleasePathStr = releasePath()
    println "gReleasePathStr=${gReleasePathStr}"
    gMappingDirStr = "${projectDir}" + File.separator + "build" + File.separator + "outputs" + File.separator + "mapping" + File.separator + "release"
    println "gMappingDirStr=${gMappingDirStr}"

    def releaseDir = new File(gReleasePathStr)
    if (!releaseDir.exists()) {
        releaseDir.mkdirs()
    }
}
// 升級到gradle3.3後的代碼
tasks.whenTaskAdded() {
    task ->
        if (task.name == 'assembleRelease') {
            task..doFirst {
                if (!project.hasProperty('RELEASE_PATH')) return;
                if (localPack) return;

                gReleasePathStr = releasePath()
                println "gReleasePathStr=${gReleasePathStr}"
                gMappingDirStr = "${projectDir}" + File.separator + "build" + File.separator + "outputs" + File.separator + "mapping" + File.separator + "release"
                println "gMappingDirStr=${gMappingDirStr}"

                def releaseDir = new File(gReleasePathStr)
                if (!releaseDir.exists()) {
                    releaseDir.mkdirs()
                }
            }
        }
}

問題2

assembleRelease.dependsOn customFindbugs想在打release包時進行FindBugs檢查gradle

修改成:ui

tasks.whenTaskAdded() {
    task ->
        if (task.name == 'assembleRelease') {
            task.dependsOn customFindbugs
        }
}

問題3

想獲取Manifest中的版本號versionName和versionCode,原來使用的是DefaultManifestParser獲取,可是升級後,這個方法接口該了,須要傳一個File文件進去。code

// 原gradle2.x
/**
 * 獲取manifest裏面的version name
 */
def getManifestVersionName = { ->
    return new DefaultManifestParser().getVersionName(android.sourceSets.main.manifest.srcFile)
}

升級後接口

def getManifestVersionName = { ->
    return new DefaultManifestParser(android.sourceSets.main.manifest.srcFile).getVersionName()
}
相關文章
相關標籤/搜索