【问题标题】:Gradle nested multi-projects with project compile dependencies具有项目编译依赖项的 Gradle 嵌套多项目
【发布时间】:2012-11-15 17:53:39
【问题描述】:

我有一个与Gradle Multi-Module Project Setup 相同的问题,但我必须使用项目编译依赖项来构建,并且不能使用上述问题中作为解决方案提供的库(jar)依赖项解决方案。

Root
|__ P1
|   |_ PP1
|   |_ PP2
|
|__ P2
   |_PP3
   |_PP4

PP1、PP2、PP3、PP4是子项目,每个都有自己的build.gradle文件; P1 和 P2 也有 build.gradle 和 settings.gradle 文件。

如何在 PP3 的 build.gradle 文件中将 PP1 声明为编译依赖项?

apply plugin: 'java' 
dependencies {
    compile('P1:PP1') //does not work
    compile group: 'P1', name: 'PP1', version: '0.1' // jar library dependency not an option

    compile('{ant_target}')? //follow up question - an ant target as a dependency
}

我正在运行 Gradle v1.2

【问题讨论】:

标签: build dependencies gradle multi-project


【解决方案1】:

一个构建只能有一个 settings.gradle 文件。假设settings.gradle 位于根目录中并包含如下项目:

include "P1:PP1"

你可以像这样添加编译依赖:

dependencies {
    compile(project(":P1:PP1"))
}

有关详细信息,请参阅Gradle User Guide 中的“多项目构建”一章。

【讨论】:

  • 谢谢!在一个相关问题上,是否可以在 build.gradle 依赖项闭包中将 Ant 目标声明为依赖项?场景:P2的build.gradle文件导入P2的build.xml; “myAntTask”是 build.xml 中的一个目标;项目 settings.gradle 有include 'P1:PP1', 'P2';我可以使用 Gradle 执行 P2 的“myAntTask”ant 目标。坚持我的编译依赖要求,我如何在 P1 的 build.gradle 中将“myAntTask”声明为编译依赖?我正在慢慢地将我的 Ant 构建项目转换为 Gradle,同时还添加了新的 Gradle 项目
  • 听起来你在混淆任务依赖和工件依赖。
  • 没有回答“如何在 PP3 的 build.gradle 文件中将 PP1 声明为编译依赖项?”的问题。此解决方案仅显示 P1 和 PP1。
  • 迟到了,但对于任何新来的人:Gradle 4.10 现在支持嵌套(复合)构建,因此我们现在可以在构建中构建构建等,每个构建都有自己的设置文件
  • @AndyDingfelder 真的吗?似乎仍然只允许单个settings.gradle
猜你喜欢
  • 1970-01-01
  • 2015-03-30
  • 2018-11-10
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
相关资源
最近更新 更多