如何通过配置使Gradle中的一个子项目依赖于另一个子项目?

时间:2019-04-26 17:54:58

标签: gradle build.gradle

我有一个如下所示的多项目版本:

helloworld
- projecta
  - build.gradle
- projectb
  - build.gradle
- build.gradle

projecta创建一些文件,然后projectb将其压缩。我希望projectb依赖于projecta

现在,我只是在dependsOn ':projecta:build的build.gradle中有一个projectb。但这感觉就像是黑客。

我想改用配置使其看起来像这样:

// projectb build.gradle
dependencies {
  compile project(':projecta')
}

但是我找不到有关如何定义编译任务的任何文档。我怎么去做?

1 个答案:

答案 0 :(得分:1)

Gradle的理念是精确建模您的目标:

  • projecta生成的文件是否是项目本身的真实输出,就像Java世界中的JAR一样?

    如果是,那么使用确实可以使您访问这些文件的配置进行工作,前提是它们已正确注册为projecta

  • 的生产版本。
  • 这些文件是否是建筑物projecta的副产品,但不是供一般消费的?

    如果是这种情况,那么最明确的依赖性是跨任务的,其中projectb中的压缩任务仅取决于projecta中产生这些文件的任务。 build在某种意义上感觉像是黑客,与projecta真正需要的东西相比,它最有可能在projectb中引起更多的工作。