在解决依赖关系之前复制文件以构建 Android 应用程序

Pop*_*ean 5 android gradle android-gradle-plugin

我有一个名为“app”的 Android 应用程序和两个生成“a.jar”和“b.jar”的 jar 项目。'app' 是 gradle 项目,但 'a.jar' 和 'b.jar' 都不是非 gradle 项目。

我想要在执行“gradle build”以构建“app”时自动构建“app”依赖的 jar 文件。我将创建 jar 文件的位置添加到“依赖项”闭包中,并尝试插入一些任务来构建和复制 a.jar 和 b.jar。

换句话说,我希望按照以下顺序完成构建任务:

  1. 构建“a.jar”和“b.jar”
  2. 'a.jar' 和 'b.jar' 被添加到 'app' 的依赖中
  3. “应用程序”应该正确构建。

我尝试通过多种方式插入构建 jar 的任务。

apply plugin: 'com.android.application'

dependencies {
    // ... some other dependencies

    compile files('external/a.jar')
    compile files('external/b.jar')
}

android {
  // ...
  // standard android build
  // ...
}

task buildJarA(type: Exec) {
  // the task which builds a.jar and copies into 'external/a.jar'
}

task buildJarB(type: Exec) {
  // the task which builds b.jar and copies into 'external/b.jar'
}

// I tried as follows, but it did not work
gradle.projectsEvaluated {
  preBuild.dependsOn([buildJarA, buildJarB])
}
Run Code Online (Sandbox Code Playgroud)

但是我无法将依赖项添加到编译的 jar 文件中,并且依赖项最初似乎已解决。如果您在解决依赖关系之前知道如何运行任务,请告诉我问题的解决方案。

小智 0

相反preBuild.dependsOn,你尝试过吗compileJava.dependsOn?我在主构建开始之前用它来复制文件。