Maven:如何将现有的Maven项目拆分为不同的项目?

时间:2020-02-14 16:06:40

标签: java spring-boot maven maven-2 maven-3

因此,我有一个包含数百个API和相应模型的大型Spring Boot项目。我被要求将其分为三个不同的模块。店面,订单管理系统和实用程序。根据我的基本计划,我对Storefront和OMS API进行了排序,过滤和移动,并将其移至其相应项目。我将所有模型类移至实用程序,创建了一个程序包,将此程序包添加到本地存储库中,并将其作为Storefront和OMS的依赖项包括在内。进一步将这两个项目导出为可运行的jar,并将所需的库复制到生成的jar旁边的子文件夹中。之所以这样做,是因为该子文件夹将包含实用程序包,并且如果将来必须从实用程序中进行更新,则可以替换此程序包并重新启动服务器。

一切正常,问题出在最终包装的尺寸上。原始项目的jar大小为175 MB。这三个项目都具有相似的.pom文件。因此,所有这三个项目的导出大小都接近175 MB。正如我所说,我在其他两个项目中都包含了实用程序包。因此,Storefront和OMS的子文件夹的大小约为350 MB。

最后,我的问题是,是否有办法将Maven项目分为3个可以独立构建和部署的子项目,并且有没有办法使这3个项目共享一组可以远程存储和由他们独立访问,以便减小最终可运行jar的大小?

1 个答案:

答案 0 :(得分:1)

我认为其中涉及一些更深层次的问题。如果您的工件有175MB并且其中大多数是依赖项,那么您将拥有非常多的依赖项。

因此,首先,您应该问自己,所有这些依赖项是否真的必要。人们添加一个依赖项只是为了使用该依赖项中的一个简单类,这并不稀奇。而且这种依赖比具有传递的负担。 175MB的确需要对此事实进行更深入的分析。

接下来,如果看到不再能够真正减少依赖关系,则可以将项目分成几个项目(就像您开始做的那样)。但是,大多数依赖项应该只在生成的项目中一个中。如果所有结果项目都使用了所有依赖项,那么这些项目都在做类似的事情,可能是重叠的事情,这是不好的。