繁体   English   中英

Gradle 本地项目依赖

[英]Gradle Local Project Dependency

我在同一个目录中有 2 个 Gradle 项目。 目录结构如下:

ParentDirectory\
    GradleProjectA\
        build.gradle
    GradleProjectB\
        settings.gradle
        build.gradle

我想将GradleProjectA GradleProjectB依赖项。 GradleProjectBsettings.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")

includeFlat参考

如果GradleProjectAGradleProjectB是一个多项目建设摇篮的一部分,那么你可能想settings.gradleParentDirectory有包括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 这只是GradleProjectAGradleProjectB关联起来。 这是官方 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM