在从gralde 2.x版本升级至3.3时,发现有编译不过的问题android
assembleRelease.doFirst
找不到。相应的doLast
和assembleDebug
同理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() } } } }
assembleRelease.dependsOn customFindbugs
想在打release包时进行FindBugs检查gradle
修改成:ui
tasks.whenTaskAdded() { task -> if (task.name == 'assembleRelease') { task.dependsOn customFindbugs } }
想获取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() }