首页 > 解决方案 > Gradle 子项目设置,git 子模块

问题描述

我有一个带有以下模块的 gradle (libgdx) 项目

- :core
- :a
- :b

我还包括本地库作为源,以修改它们,因为它们与项目松散地联系在一起。这些项目都有自己的结构,很像根项目的结构。最终的项目结构如下所示:

 - :core
 - :a
 - :b
 - :libA:core
 - :libA:a
 - :libA:b
 - :libB:core
 - :libB:a
 - :libB:b

我现在的问题是,如何正确设置它,以便我可以project(':core')在嵌套库项目中用作项目依赖项,并且仍然不是指:core根项目,而是指各个库核心模块?我不想修改依赖项,project(':libA:core')因为这会破坏独立形式的库项目。

标签: javagitgradleproject

解决方案


您可以这样组织项目:

/rootDir
  -settings.gradle
  -/core
   -- build.gradle
  -/a
   -- build.gradle  
  -/b
   -- build.gradle  
  -/libA
    -settings.gradle  
    -/core
       -- build.gradle
    -/a
       -- build.gradle  
    -/b
      -- build.gradle       
  -/libB
    -settings.gradle  
    -/core
       -- build.gradle
    -/a
       -- build.gradle  
    -/b
      -- build.gradle     

细节:

  • 一个settings.gradle在根级别,包括核心、a 和 b 项目
  • libA 目录中的一个settings.gradle,其中包括 libA 中的核心、a 和 b 项目
  • libB 目录中的一个settings.gradle,其中包括 libB 中的核心、a 和 b 项目

如果您不需要从不同的 libA 和 libB 子模块引用“主”代码项目,这将起作用。


推荐阅读