Maven 多模块相对于简单依赖的优势

2024-01-04

我有多年的 Maven 项目经验,甚至是多模块项目(这使我hateMaven 的多模块功能(因此免责声明现已完成)),即使我真的很喜欢 Maven,也有一些问题我无法得到明确的答案:

多模块 Maven 项目的典型用例是什么?与简单的依赖项和父 pom 相比,这种结构的附加值是什么?

我见过很多多模块项目的配置,但所有这些都可以通过创建一个简单的依赖库结构来明确解决,这些依赖库将自己的生活作为可交付成果(即使有父 pom,作为单独的可交付成果:因式分解依赖关系和配置)并且我还没有找到任何可以清楚地看到多模块结构的附加值的用例。

我一直发现这种结构带来了过度的复杂性,却没有真正的好处:我在哪里遗漏了一些东西? (说实话,我可以得到一些ear可以从这种结构中受益,但除了该特定用例之外,还有其他真正的用途和好处吗?)


这是一个现实生活中的案例。

我有一个多模块项目(对于你的咆哮......我没有看到它有任何复杂性。)最终结果是一个 webapp,但我有不同的 api、impl 和 webapp 模块。

创建项目 12 个月后,我发现我必须使用从 jar 运行的独立进程来与 Amazon S3 集成。我添加了一个依赖于 api/impl 的新模块,并编写了用于在新模块中集成的代码。我使用程序集插件(或类似的东西)创建一个可运行的 jar,现在我有一个可以在 tomcat 中部署的战争和一个可以在另一台服务器上部署的进程。我的 S3 集成过程中没有 Web 类,并且我的 Web 应用程序中没有 Amazon 依赖项,但我可以共享 api 和 impl 中的所有内容。

3 个月后,我们决定创建一个 REST Web 应用程序。我们希望将其作为一个单独的应用程序来实现,而不仅仅是现有 Web 应用程序中的新 URL 映射。简单的。又一个模块,另一个 Web 应用程序作为 Maven 构建的结果而创建,没有进行任何特殊的修补。业务逻辑可以在 webapp 和 rest-webapp 之间轻松共享,我可以根据需要部署它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven 多模块相对于简单依赖的优势 的相关文章

随机推荐