1

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

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

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

有任何想法吗?

4

2 回答 2

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

于 2010-09-06T09:17:28.417 回答
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。它还允许您单独推广您的 F 项目,而无需 P 或任何其他副项目。

有关更多最新信息,请查看 Gradle 文档的多项目构建章节

于 2010-09-02T09:20:19.997 回答