我正在开发两个应用程序,它们都共享一个公共库项目,这三个项目是在gradle多项目下组织的。当时的公共项目包括公共api,我的想法是使用java平台模块系统(jpms)将公共api作为单个模块分发。我不想分发整个公共库,因为它包含实现和内部api。遵循这些准则,将整个公共库转换为一个模块相当容易。
然而,我想把这个项目分成两个java模块,一个用于公共api,一个用于内部api,这就是我的麻烦开始的地方。据我所知,模块化jar最多只能包含一个模块,但是在单个项目中声明多个模块没有限制(因为java可能甚至不知道项目概念)。根据这个博客,它是通过为每个模块添加一个文件夹来完成的 src/main/java
,并让它包含 module-info.java
对于该模块)。
当我在gradle项目中尝试这个方法时,我添加了“模块文件夹”(例如。 foo.bar
)被解读为普通包裹。我假设这是因为所有模块都位于同一个源集中。
对于我的问题,简单而快速的解决方案当然是创建一个包含公共api的新子项目。然而,如果我继续执行模块化的话,这看起来有点不现实。据我所知,gradle项目和java模块之间肯定不需要1对1的Map。
我的简单问题是gradle(例如通过插件)是否可以自动识别模块并为每个声明的模块构建一个模块jar?
暂无答案!
目前还没有任何答案,快来回答吧!