0

我正在使用 gradle-experimental 处理一个 ndk 项目。我有一个“预建”库,它实际上是我在 gradle 任务中通过 shell 调用生成的库。我试图让这个项目很容易开箱即用,所以我需要能够在 gradle 构建之前运行这个 buildTask。我已经研究过preBuild.dependsOn ...,但不幸的是,这在实验中不受支持。有任何想法吗?我目前有一个.sh运行它的文件,但我正试图摆脱它。

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

4

1 回答 1

0

假设:

  • NDKmoduleNamefoo
  • 支持ABI的是armeabi
  • 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 回答