2015-11-14 75 views
2

我正在尝试使用'javah'命令生成JNI头并且为此我需要传递包含项目.class文件的目录。以前与蚂蚁这是一个静态的位置,但它与gradle上的buildTypes和productFlavors是动态的。在Gradle脚本中检索Flavor和BuildType相关类路径

Gradle中是否存在表示类路径的变量?比如我想检索build/intermediates/classes/debug /,build/intermediates/classes/dev/debug /等。

我在gradle 1.2.3上试图使用'sourceSets.main。 output.classesdir',但我得到一个错误,'输出'无法找到源集main。

回答

0

我无法找到一种直接的方式来动态确定buildType和productFlavor,但我通过检查任务图找到了解决方案。

gradle.taskGraph.whenReady { taskGraph -> 
     if (taskGraph.hasTask(assembleRelease)) { 
      buildTypeClassPath = "build/intermediates/classes/release" 
     } else { 
      buildTypeClassPath = "build/intermediates/classes/debug" 
     } 
    } 

我认为该解决方案可适于通过改变hasTask(assembleRelease)检查到hasTask(assembleProdRelease)掺入productFlavors