根据产品风味维度创建gradle任务

时间:2016-10-06 14:45:04

标签: android gradle android-gradle jacoco

我的build.gradle中有以下productFlavors:

productFlavors {

    free {

    }
    paid {

    }       
}

现在我添加了这样的flavorDimension(http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-flavor-variants):

flavorDimensions "payment", "releasetype"

productFlavors {

    paid {
        dimension "payment"
    }
    free {
        dimension "payment"
    }
    beta {
        dimension "releasetype"
    }

    major {
        dimension "releasetype"
    }
}

我正在使用this script为jacoco覆盖率报告生成gradle任务。 该脚本将构建类型(调试,发布)与产品风格(付费,免费,...)相结合,并相应地生成任务。

当然,这取决于风味尺寸,因为脚本没有将它们考虑在内。

该脚本生成任务:

testDebugPaidUnitTestCoverage
testDebugFreeUnitTestCoverage
testDebugBetaUnitTestCoverage
testDebugMajorUnitTestCoverage

它应该做的是:

testDebugPaidBetaUnitTestCoverage
testDebugPaidMajorUnitTestCoverage
...

我尝试通过

访问gradle任务中的flavorDimensions
android.flavorDimensions

但它不承认该财产:

Error:Could not get unknown property 'flavorDimensions' for object of type com.android.build.gradle.LibraryExtension.

有关如何扩展此脚本以使用flavor维度或如何从我的外部jacoco.gradle脚本访问它们的任何建议?

我可以从那里访问构建类型和产品风格,所以这可能吗?

1 个答案:

答案 0 :(得分:0)

我不擅长 gradle。

但也许你可以试试下面的

如果你的模块是库;

variants = android.libraryVariants.collect { var ->
    var.name
}

如果你的模块是应用程序;

variants = android.applicationVariants.collect { var ->
    var.name
}