编程语言
首页 > 编程语言> > java-为什么要细分为内部项目的Maven模块?

java-为什么要细分为内部项目的Maven模块?

作者:互联网

关于我们的Maven模块的粒度,我们在项目中进行了不间断的讨论.我们已经同意,框架(如spring)和始终以整体部署的内部应用程序的需求可能有所不同.

我们还同意,将适配器的实现细节隐藏到外部系统的单独的API模块后面是相当明智的,因此实现类不会渗入到主要实现的类路径中.

但是,就我们而言.这是一个Web项目,因此我们具有“ web”,“ core”和“ adapter(s)”之类的模块.我们有多个后端,但是我们不需要可插入性.

您在maven中使用什么标准进行模块化?您为Web项目制作哪些模块?

解决方法:

我认为,即使对于“仅一个webapp”,项目部门也应该非常精细.

我将为数据访问层接口和实现,业务层接口和实现以及webapp本身创建单独的项目.我还将使至少一个“公共”项目包含与多个其他项目相关的代码.但这仅仅是开始.无论开发的应用程序是什么(字符串,日期,反射等),我都会毫不犹豫地为相关的实用程序类提取commons-util项目.在进行测试(公共测试)时,我还将为有用的实用程序创建一个项目.那只是下一步…;)

如果我编写了与休眠有关的通用代码,我会将其放在hibernate-utils项目中.有用的Spring实用程序将放在spring-utils项目等中.执行此操作时,许多项目将仅包含一个或几个包,并且这些包通常将包含几个类.

我这样做的理由是,它可以帮助我考虑编写的代码.这是真正的业务逻辑,还是通用的字符串操作,日期操作,休眠特定的逻辑等?我的图层变得更加整洁,并且变得越来越难以在包和项目之间获得循环依赖关系(我们不希望如此).此外,在其他项目中重用代码变得容易得多.总会有其他项目…

我还发现,新开发人员更容易掌握结构,因为项目变得更小,更易于管理.当您觉得不必了解所有内容时,便可以开始编码.

作为细粒度方法的最后一个优点,可以减少构建时间,因为您不必每次都构建所有内容.

标签:maven-2,java
来源: https://codeday.me/bug/20191108/2004663.html