如何在Gradle多项目中制作完全独立的模块

问题描述 投票:1回答:1

我想用Java开发一款顶部带有某些GUI的软件(尤其是android应用)。我希望核心功能是一个独立的模块,该模块与可以在其上构建的任何GUI或其他软件层完全独立。

核心模块本身就是一个Gradle项目:

core
├── src
├── build.gradle
└── settings.gradle

对于该应用程序,它作为git子模块包含在根存储库中:

project
├── app
│   ├── src
│   └── build.gradle
├── core
│   ├── src
│   ├── build.gradle
│   └── settings.gradle
├── build.gradle
└── settings.gradle

由于核心模块是独立的,并且具有自己的存储库,因此我必须能够将其视为Gradle根项目;因此它有自己的settings.gradle。但是,当我在根项目中工作时,我希望它充当后者的子项目(以便在gradle目录中运行core时会使用父目录中的:core将其识别为settings.gradle子项目) )。并且无需更改core的内容(它将是git子模块)。

我不想在core的git仓库中创建一个单独的分支,其中没有settings.gradle,因为在该分支中,仓库本身并没有意义,因此,[C0 ]不应“了解根项目”。

理想的解决方案是git子模块的替代版本,其中可以将对子模块的自定义更改单独提交给父存储库,而不影响子模块的原始存储库。 (具有将子模块中的上游更改与本地提交合并的功能。)然后,我将添加一个这样的“本地”提交来删除core文件。

有没有办法做到这一点?

gradle git-submodules modularity
1个回答
1
投票

这里的一个解决方案是将所有模块开发为具有独立Git仓库的完全独立的项目。然后使用Maven将core/settings.gradle库导入到core中。您甚至应该考虑将project发布到私有Maven存储库,您可以将其添加到core中的build.gradle文件中。

© www.soinside.com 2019 - 2024. All rights reserved.