gradle任务顺序:PreBuild与JavaCompile

时间:2016-12-08 19:20:21

标签: android gradle

我想建立"本地"代码并将其打包成apk。

所以我写了这样的gradle代码:

def archsInfo = [/*some arches*/];
archsInfo.each { arch_name ->
  tasks.create(name: "MyNativeBuild${arch_name}", type: Exec, description: "Building core for ${arch_name}") {
    //..something
  }
  //1
  tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn "MyNativeBuild${arch_name}"
  }
  //2
  preBuild.dependsOn "MyNativeBuild${arch_name}"
}

我的问题/神秘部分标记为" // 1"和" // 2"。

起初我只写了#34; // 1"没有" // 2"。 " MyNativeBuild ..."任务已经执行了,但是之前没有" java部分编译",例如如果运行gradle clean build它可以工作,但是在输出apk中没有" .so"图书馆,但他们建立没有问题,所以问题只在"合并"放置" .so"的任务将文件转换为" .apk"。看起来,在"合并"任务运行它们不存在。

我添加" // 2"一切正常。

那么问一下" // 1"部分,什么是" JavaCompile", 以及为什么" JavaCompile"东西可以在将构建的artefacts合并到最终apk的任务之后运行吗?

0 个答案:

没有答案