2016-07-27 60 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' 
} 
相關問題