多模块(pom)与java模块系统的区别

tjjdgumg  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(493)

我试图理解使用java平台模块系统(jpms)构建项目与使用多pom构建项目之间的区别。
主要区别是jpms封装了代码,而多pom项目分离了项目依赖关系?
我已经在google上搜索过了,但是我没有找到一个很好的解释,但是我看到module这个词可以互换使用。

nx7onnlm

nx7onnlm1#

计算机行业经常重复使用术语。背景就是一切。
你提出的两种“模块”是不相关的、正交的问题。
java平台模块系统(javaplatformmodulesystem,jpms)是一种在运行时识别所有可用类和方法中的java编译器名称空间的方法。
apachemaven中的多模块是一种将可以作为单独项目处理的项目合并到一个项目中的方法。项目中的每个模块都有自己的pom,有自己的依赖项和构建设置,但是当作为maven多模块组合时,所有模块都可以作为一个超级项目进行管理。
java中非常简单的应用程序可能两者都不使用。
理想情况下,新的java应用程序将使用jpms,但在技术上它仍然是可选的。在一个完美的世界里,jpms本来会包含在最初的java中,但实际上是最近才在java9中添加的。如果您的应用程序将作为一个独立的、捆绑了jvm的应用程序运行,那么jpms是非常方便的,因为您可以包含一个jvm,该jvm已经被剥离为您的特定应用程序实际使用的部分(请参阅jlink和jpms启用的相关工具)。
maven多模块项目通常只用于复杂的项目,比如一个包含一部分功能的应用程序,这些功能可以在其他项目中使用。或者一个多模块的maven项目对于一个既有前端用户界面模块又有后端业务逻辑模块的应用程序来说是很好的,在这个应用程序中,我们希望分别管理每个部分,同时将它们组合成一个可交付的单体,比如vaadin flow web应用程序。
我看得出你怎么会糊涂,因为两个人都和安排课程有关。简单地说,maven模块是关于编译时的(依赖管理和buildautomation),而java平台模块系统是关于运行时的。

相关问题