简体   繁体   English

Gradle - 递归子项目

[英]Gradle - Recursive subprojects

Assume I wanted to use Gradle with a project structure such as: 假设我想使用Gradle项目结构,例如:

RootProject
\-- SubProjectA
    \-- SubProjectAA
    \-- SubProjectAB

How I would I achieve this? 我怎么能实现这个目标?

What I tried is pretty straightforward. 我尝试的非常简单。 I've created all directories, with a structure described above: 我创建了所有目录,具有上述结构:

RootProject
\-- SubProjectA
    \-- SubProjectAA
        \-- build.gradle
    \-- SubProjectAB
        \-- build.gradle
    \-- build.gradle
    \-- settings.gradle
\-- build.gradle
\-- settings.gradle

RootProject/settings.gradle: RootProject / settings.gradle:

include "SubProjectA"

RootProject/SubProjectA/settings.gradle: RootProject / SubProjectA / settings.gradle:

include "SubProjectAA", "SubProjectAB"

There are two things I tried. 我试过两件事。 First, I tried importing the project in Eclipse - which didn't detect SubProjectAA nor SubProjectAB . 首先,我尝试在Eclipse中导入项目 - 它没有检测到SubProjectAASubProjectAB Stunned, I ran gradle projects in RootProject and got this output: 惊呆了,我跑gradle projectsRootProject ,并得到这样的输出:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'RootProject'
\--- Project ':SubProjectA'

Still, thinking I made a mistake, I tried running the same command in SubProjectA, and got: 仍然,我以为我犯了一个错误,我尝试在SubProjectA中运行相同的命令,并得到:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'RootProject'
\--- Project ':SubProjectAA'
\--- Project ':SubProjectAB'

I assume that resolving subprojects doesn't go recursively. 我假设解析子项目不会递归。 Is there any workaround for this? 这有什么解决方法吗?

Every example is masked with sample names, sorry if I made any mistake. 每个例子都用样本名称掩盖,如果我犯了任何错误,对不起。

Thanks! 谢谢!

You can only have one settings.gradle . 您只能有一个settings.gradle Typically it would contain something like: 通常它会包含以下内容:

include "SubProjectA:SubProjectAA"
include "SubProjectA:SubProjectAB"

More information can be found in the "multi-project builds" chapter of the Gradle User Guide . 可以在Gradle用户指南的“多项目构建”一章中找到更多信息。

try with 尝试

RootProject
\-- SubProjectA
    \-- SubProjectAA
        \-- build.gradle
    \-- SubProjectAB
        \-- build.gradle
\-- build.gradle
\-- settings.gradle

include ':SubProjectA/SubProjectAA'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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