我在同一目录中有2个Gradle项目。目录结构如下:
ParentDirectory\
GradleProjectA\
build.gradle
GradleProjectB\
settings.gradle
build.gradle
我想将GradleProjectA
添加为GradleProjectB
的依赖项。在settings.gradle
的{{1}}中,我尝试添加GradleProjectB
,然后添加到include 'GradleProjectA'
:build.gradle
,但这不起作用。
非常感谢任何帮助。感谢。
答案 0 :(得分:4)
我做这样的事情的方式如下:
GradleProjectB/settings.gradle
:
include ':GradleProjectA'
project(':GradleProjectA').projectDir = new File('../GradleProjectA')
GradleProjectB/build.gradle
:
compile project(":GradleProjectA")
答案 1 :(得分:2)
在最新版本的Gradle中,您可以使用Composite Builds,如下所示:
在 GradleProjectB的settings.gradle 中,添加以下行:
includeBuild "../GradleProjectA"
它将自动处理依赖项冲突以及所有此类问题。
答案 2 :(得分:1)
settings.gradle文件需要位于指定两者的父目录中。
请尝试以下格式:
ParentDirectory\
build.gradle
settings.gradle <-- include 'GradleProjectA', 'GradleProjectB'
GradleProjectA/
build.gradle
GradleProjectB/
build.gradle
编辑: 好的,如果您的父目录不是构建目录,那么您可以执行以下操作:
在您的gradle项目b settings.gradle文件中尝试以下操作:
includeFlat("GradleProjectA") // Include the project
你的b build.gradle中的:
compile project(":GradleProjectA")
答案 3 :(得分:0)
如果GradleProjectA
和GradleProjectB
是一个多项目Gradle版本的一部分,那么您可能需要settings.gradle
中的ParentDirectory
,其中包含A和B.你使用settings.gradle
是不正确的。也许您应该在用户指南中重新阅读有关多项目gradle构建的部分。
如果这两个项目是个别项目,但您仍然希望依赖于B中的A,那么您可能更愿意构建A,将其发布到某个存储库(可能是mavenLocal存储库),然后依赖项目B中构建的工件。
答案 4 :(得分:0)
以下应该可以解决问题:
root
+-- projectA
| +-- build.gradle
| => dependencies { compile project(':common') }
| +-- settings.gradle
| => include ':common'
| project(':common').projectDir = new File('../common')
+-- projectB
| => same as projectA
+-- common
+-- build.gradle
=> regular build, probably with a "jar" section