2016-07-27 61 views
0

我正在使用gradle-experimental的ndk项目。我有一个“预构建”库,它实际上是一个我在Gradle任务中使用shell调用生成的库。我试图让这个项目非常容易运行,所以我需要能够在gradle构建之前运行这个buildTask。我查看了preBuild.dependsOn ...,但不幸的是,这在实验中不受支持。有任何想法吗?我目前有一个运行它的.sh文件,但我试图摆脱它。如何在构建之前获取gradle来运行任务?

编辑:不重复,因为gradle-experimental不支持preBuild,因为我已经说过。

+0

的[?机器人gradle这个建立之前执行的任务(可能的复制http://stackoverflow.com/questions/18532415 /执行任务之前android的gradle构建) –

+0

除了这是在gradle实验。请阅读差异和我写的内容。 – iHowell

回答

0

假设:

  • NDK moduleName
  • 支持ABIarmeabi
  • Variants调试释放

你必须创建每变种和ABI您添加到abiFilters的组合。

build.gradle

class FooRuleSource extends RuleSource { 

    @Mutate 
    void validatePreCompileFooDebugEnvironmentArmeabi(
     @Path('tasks.compileFooArmeabiDebugSharedLibraryFooMainCpp') Task compileTask) { 
     validateEnvironment(compileTask) 
    } 

    @Mutate 
    void validatePreCompileFooReleaseEnvironmentArmeabi(
     @Path('tasks.compileFooArmeabiReleaseSharedLibraryFooMainCpp') Task compileTask) { 
     validateEnvironment(compileTask) 
    } 

    private void validateEnvironment(compileTask) { 
     compileTask.dependsOn("desiredTask") 
    } 

} 

创建RuleSource类在build.gradle创建任务:

task desiredTask(type:Exec){ 
    commandLine 'echo', 'hi' 
} 
相关问题