首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分级-递归地包括外部项目及其子项目。

分级-递归地包括外部项目及其子项目。
EN

Stack Overflow用户
提问于 2015-02-27 16:42:12
回答 1查看 1.7K关注 0票数 7

我有一个带有许多子模块的gradle项目,名为shared-library

我有一个名为service的项目,它依赖于shared-library的一个模块。这取决于:shared-library:module1。通常,我是从maven那里得到这种依赖的。

现在,我想修改shared-library并使用依赖的项目测试我的更改。与其对shared-library进行更改、构建、部署到maven,然后重新构建service,不如让service直接依赖于shared-library gradle项目。

因此,我发现您可以将gradle指向文件系统上的任意项目目录:

service/settings.gradle

代码语言:javascript
复制
include "shared-library"
project(":shared-library").projectDir = new File("/projects/shared-library")

但是当我这样做的时候,这个项目并不知道shared-library的子模块,我不能这样做:

service/build.gradle

代码语言:javascript
复制
compile(
project(":shared-library:module1"),
)

所以我试着直接对他们进行include测试。:shared-library:module1依赖于:shared-library:module2,所以我也包括了这个:

service/settings.gradle

代码语言:javascript
复制
include "shared-library"
project(":shared-library").projectDir = new File("/projects/shared-library")
include "shared-library:module2"
include "shared-library:module1"

但是现在当我尝试运行这个程序时,它会抱怨:shared-library:module1无法找到一个名为:module2的项目。这是因为它的依赖性是这样配置的:

shared-library/module1/build.gradle

代码语言:javascript
复制
compile(
project(":module2")
)

但是,如果我将其更改为一个绝对的项目路径,那么现在shared-library无法自己编译:

shared-library/module1/build.gradle

代码语言:javascript
复制
compile(
project(":shared-library:module2")
)

tl;博士,似乎service解析shared-library子模块名称的方式与shared-library的实现方式不匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-14 13:19:28

你是对的。您可以导入外部项目,甚至导入外部子项目,并在主项目中引用它们,但一旦编译了外部实体,它们就无法使用预期的名称进行解析。

我发现您可以在主项目中重命名外部项目,以便它们与外部项目的名称相匹配。这样,您的主项目和外部项目使用相同的名称。

service/settings.gradle更改为:

代码语言:javascript
复制
include "shared-library"
project(":shared-library").projectDir = new File("/projects/shared-library")

include "shared-library:module2"
project('shared-library:module2').name = ':module2'

include "shared-library:module1"
project('shared-library:module1').name = ':module1'

现在,在您的项目和外部项目中,请将您的模块称为:module1:module2。在service/build.gradle中使用:

代码语言:javascript
复制
compile(project(":module1"))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28770024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档