最近我开始使用 Maven 来更有效地管理我的项目结构。然而,由于我同时在学习JAVA,我已经走进了一个死胡同,MAVEN中的模块和JAVA包有什么区别?
由于包用于对具有共同用途的类/接口(interface)进行分组: (来源:docs.oracle)
Definition A package is a grouping of related types providing access protection and name space management.
我找不到模块的明确定义,比模糊的定义更好: (来源:http://docs.jboss.org/tools/latest/en/maven_reference/html/creating_a_maven_application.html)
A Maven module is a sub-project
根据我的阅读,我们应该创建模块,以便分离项目、业务、领域中的逻辑,基本上任何被视为单独实体的东西。
因此,为什么我们不能对包的使用做同样的事情呢?目的不是一样吗?
我还忽略了这里的所有构建配置。如果这是唯一的区别,那么请提供论证何时应该使用哪一个。
最佳答案
Maven是一个捆绑工具,它将软件的可重用部分组装到一个应用程序中,无论是Java代码、图像资源还是HTML模板。它构建您的应用程序,以便可以在特定环境(本地、测试、生产等)中运行或部署。所有这些都与 Java 包无关。
如果您(或其他人)想要重用您编写的代码,您应该关心 Maven 模块。例如,您编写了一个用于转换货币的 Web 应用程序,现在您想在另一个应用程序中使用转换逻辑(但不是 Web 前端)。在这种情况下,您需要为 Web 前端创建一个模块,为业务逻辑创建一个模块。
关于java - Maven:差异模块-java包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42561194/