0

私はgradle-experimentalを使用してndkプロジェクトに取り組んでいます。私は「ビルド済み」ライブラリを持っていますが、これは実際にはgradleタスクのシェル呼び出しで生成したライブラリです。このプロジェクトを簡単に実行できるようにしようとしているので、gradle ビルドの前にこの buildTask を実行できるようにする必要があります。を調べましpreBuild.dependsOn ...たが、残念ながら実験的にはサポートされていません。何か案は?現在、.shそれを実行するファイルがありますが、それから離れようとしています。

編集:既に述べたように、gradle-experimental は preBuild をサポートしていないため、重複しません。

4

1 に答える 1

0

仮定:

  • NDKmoduleNamefooです
  • サポートされているのABIarmeabi です
  • Variantsデバッグリリースです

abiFilters に追加したすべてのバリアントと ABI の組み合わせを作成する必要があります。

で RuleSource クラスを作成します。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")
    }

}

でタスクを作成しますbuild.gradle

task desiredTask(type:Exec){
    commandLine 'echo', 'hi'
} 
于 2016-07-27T23:31:04.537 に答える