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