[英]Gradle Local Project Dependency
我在同一个目录中有 2 个 Gradle 项目。 目录结构如下:
ParentDirectory\
GradleProjectA\
build.gradle
GradleProjectB\
settings.gradle
build.gradle
我想将GradleProjectA
GradleProjectB
依赖项。 在GradleProjectB
的settings.gradle
中,我尝试添加include 'GradleProjectA'
然后在build.gradle
中: compile project(':GradleProjectA')
但这没有用。
任何帮助将不胜感激。 谢谢。
我做这样的事情的方式如下:
GradleProjectB/settings.gradle
:
include ':GradleProjectA'
project(':GradleProjectA').projectDir = new File('../GradleProjectA')
GradleProjectB/build.gradle
:
compile project(":GradleProjectA")
在最新版本的Gradle中,您可以使用Composite Builds ,如下所示:
在GradleProjectB的settings.gradle中 ,添加以下行:
includeBuild "../GradleProjectA"
它将自动处理依赖项冲突和所有这些事情。
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")
如果GradleProjectA
和GradleProjectB
是一个多项目建设摇篮的一部分,那么你可能想settings.gradle
在ParentDirectory
有包括A和B.您使用的方式settings.gradle
是不正确的。 也许您应该在“用户指南”中重新阅读有关多项目gradle构建的部分。
如果这两个项目是个别项目,但您仍然希望依赖于B中的A,那么您可能更愿意构建A,将其发布到某个存储库(可能是mavenLocal存储库),然后依赖项目B中构建的工件。
以下应该做的伎俩:
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
您可以在父目录中创建一个settings.gradle
。 这只是GradleProjectA
与GradleProjectB
关联起来。 这是官方 Gradle 文档中使用的方法。 它看起来像下面这样:
ParentDirectory/settings.gradle
rootProject.name = 'RootProject'
include 'GradleProjectA', 'GradleProjectB'
然后在GradleProjectB/build.gradle
中,你可以简单地在 dependencies 下写implementation project(':GradleProjectA')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.