Gradle可以处理除子目录以外的本地依赖项吗?

时间:2010-08-24 22:02:13

标签: gradle

我不知道我是否完全理解了这个概念,但是我想创建几个项目,这些项目依赖于其他项目,这些项目不属于父项目的目录结构。我知道这样做的正常方法是使用从某个外部存储库获取的外部依赖项。但在这种情况下,让我们说在一个名为'F'的项目中,开发了一个框架,用于项目'P'。然后P使用F,但是F应该IMO不一定是P的子项目,因为P是仅用于试驾F的开发(但它不仅仅是单元测试)。在此过程的后期,当F稳定时,F被分离并且可以通过存储库被其他项目使用。但是在使用P作为测试用例的F开发期间,如果可以省略通过存储库的往返,那将是很好的。

更糟糕的是,对于最初的开发,有一个以上的测试驱动消费者项目,它们都需要依赖于F,而不是通过外部存储库。

我的想法是在磁盘上的某个地方开发F,它有自己的git reposity。其他P类项目驻留在磁盘上的其他位置,并且具有基于本地文件系统的依赖关系F.这样的构造是否可以在Gradle中实现?如果是这样,我从哪里开始?我扫描了Java示例但找不到合适的示例。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

Gradle项目层次结构是完全虚拟的。它只是具有物理位置对应于虚拟层次结构的默认值。但是你可以完全控制它。请参阅:http://gradle.org/0.9-rc-1/docs/userguide/build_lifecycle.html#sec:settings_file

关于您的其他想法,请查看以下Jira:http://jira.codehaus.org/browse/GRADLE-1014

答案 1 :(得分:0)

您可以考虑像这样的文件夹层次结构:

Main folder
|- F folder
|  |- .git
|  |- sources
|  |- build.gradle (with parts specific to F)
|- P folder
|  |- sources
|  |- build.gradle (with part specific to P)
|- build.gradle (with common parts)
|- settings.gradle

因此,您始终可以决定在F项目,P项目或两者上共同运行gradle。它还允许您在没有P或任何其他辅助项目的情况下单独推广您的F项目。

要获取更多最新信息,请查看Gradle文档的Multi Project Builds chapter