是否有一个锚任务,包含Android Gradle插件中的bundleDebug和bundleRelease?

时间:2015-02-06 17:35:24

标签: gradle android-gradle

在Android Gradle插件中,任务"汇编"是一个包含assembleDebug和assembleRelease的锚任务。是否有类似的锚任务包含bundleDebug和bundleRelease。我目前有以下构建脚本,其中任务依赖于bundleDebug:

android.libraryVariants.all {
    variant -> variant.javaCompile.classpath += configurations.provided
}
task removeCameraApiJar(dependsOn: 'bundleDebug') << {
    FileCollection outputs = tasks['bundleDebug'].getOutputs().getFiles()
    outputs.each {
        File file ->
            println file.name
    }
    println 'removeCameraApiJar'
}
task assemble.dependsOn(removeCameraApiJar)

但是,如果我用&#34; bundle&#34;替换bundleDebug,脚本将失败并显示以下消息:

  

      
  • 出了什么问题:无法确定任务的依赖关系:camerasupport:removeCameraApiJar&#39;。

         
        

    任务与路径&#39;捆绑&#39;没有在项目中找到&#39;:camerasupport&#39;。

  •     

  

2 个答案:

答案 0 :(得分:0)

似乎Android插件创建了这样一个任务。但是,您可以执行类似

的操作
task removeCameraApiJar(dependsOn: tasks.matching { it.name.startsWith('bundle') })

答案 1 :(得分:0)

在当前版本的gradle android插件(1.5.0)中,可以找到bundle任务作为变量输出的属性(“packageLibrary”):

android.libraryVariants.all {
    variant -> 
    variant.outputs.each { output ->
    FileCollection outputs = 
    output.packageLibrary.getOutputs().getFiles()
    }
}

prinln output.packageLibrary.name将产生“bundle”+ buildVariant。