Maven模块化

最近打算推进公司项目模块化开发,并且之前公司项目是没有使用maven管理的,所以同时考虑把项目使用Maven管理。

1、模块化简介

模块化就是把复杂问题分解的过程,有点分治的感觉。

2、模块化的作用

首先肯定是会降低问题的复杂度,同时也是一个高内聚、低耦合的思想。

考虑到一些模块在不同系统中是可以共用的,所以分模块之后,部分模块就可以把单独拿出来给不同的项目使用。

3、模块化划分的几种方式

基于水平切分。把一个系统按照业务类型进行水平切分成多个模块,比如权限管理模块,用户管理模块,各种业务模块等。

基于垂直切分。把一个系统按照系统层次进行垂直切分成多个模块,如DAO层,SERVICE层,业务逻辑层。

基于单一职责。将代码按照职责抽象出来形成一个一个的模块。将系统中同一职责的代码放在一个模块里。比如我们开发的系统要对接多个渠道的数据,每个渠道的对接方式和数据解析方式不一样,为避免不同渠道代码的相互影响,我们把各个渠道的代码放在各自的模块里。

基于易变和不易变。将不易变的代码抽象到一个模块里,比如系统的比较通用的功能。将易变的代码放在另外一个或多个模块里,比如业务逻辑。因为易变的代码经常修改,会很不稳定,分开之后易变代码在修改时候,不会将BUG传染给不变的代码。

当然这几种划分方式也可以组合使用。我们现在的划分方式就是基于水平切分和易变不易变两种方式。

4、Maven模块化实现(结合eclipse使用)

下面会介绍如何使用eclipse建立一个Maven模块化项目。同时会顺带介绍下eclipse和Maven使用的时候需要安装哪些插件,以及同svn使用的时候需要安装的插件及操作过程。

4.1、安装Maven支持

首先eclipse如果没有Maven插件的话,需要先安装Maven插件,现在网上的那些link安装的网址都已经失效了,所以建议大家安装的时候直接通过eclipse的Marketplace安装,直接搜索Maven Integration for Eclipse,选择对应自己版本的插件安装。等待安装成功后重启eclipse,打开eclipse的Preferences发现里面出现了Maven,表示安装成功。

ps:使用maven前当然需要电脑里有Maven了,下载了Maven后放到一个路径下,然后在eclipse的Maven配置下,有个Installations,点击Add选择Maven解压路径,下面会自动扫描到settings文件,另外把User Settings下的路径也修改为安装的Maven的settings.xml文件路径,同时修改完之后需要点击下面的Update Settings按钮,完成配置生效。

4.2、新建Maven 项目

右键New Maven Project,选择quickstart就可以(这里不具体介绍Maven的详细使用了,网上也很多),新建之后,我们只需要把这个项目中除了pom.xml文件外的所有内容都删掉,这个就可以作为一个根项目(父项目)使用了。

父项目需要在pom中有以下几个修改:

packaging需要改为pom,表名这个项目中只存放pom文件;另外可以添加一些项目中公共会使用到的dependency。

4.3、新建Maven子模块

右键New Maven Module,需要选择Parent Project,点击Browse选择根项目。根据是java还是web项目选择好类型之后,就可以创建完成一个Maven模块。这时候子模块的pom文件中会自动增加parent的配置,同时,Maven父项目中也会增加Module的配置信息。

4.4、与svn的交互

首先提交到svn的时候可以直接把根项目提交上去就可以了。

检出的时候稍微有几处要注意。

首先需要安装一个eclipse插件,这个插件最好的安装方式就是通过eclipse提示安装。我们直接把svn地址弄好之后,右键检出,选择Maven——Checkout Maven Project From SCM,这时候他会提示我们没有可选项,也就是一个错误,我们会发现右下角有一个连接,我们点击进入eclipse的插件安装界面,滑动到最下面,安装m2e-subclipse,之后发现再检出的时候那边的有个下拉选择可以选择svn了,就可以检出了。这样直接检出根目录,eclipse中就会自动构建出Maven的项目与模块了。

本文发布自赵伊凡BLOG

©原创文章,转载请注明来源: 赵伊凡's Blog
©本文链接地址: Maven模块化

“Maven模块化”的35个回复

  1. Pingback: Blue Coaster33
  2. Pingback: Direct TV vs Cable TV
  3. Pingback: stop parking
  4. Pingback: laan penge
  5. Pingback: mp4 mobile porn
  6. Pingback: stop parking
  7. Pingback: sms laan nu
  8. Pingback: water ionizer
  9. Pingback: Instagram likes kopen
  10. Pingback: locksmith union city
  11. Pingback: water ionizer
  12. Pingback: house blue
  13. Pingback: HD Coloring Pages
  14. Pingback: ionizer loans
  15. Pingback: pay day loans
  16. Pingback: paypal loans
  17. Pingback: water ionizer loans
  18. Pingback: electricity
  19. Pingback: alkaline water
  20. Pingback: car insurance options
  21. Pingback: alkaline water
  22. Pingback: this post
  23. Pingback: over here

发表评论

电子邮件地址不会被公开。 必填项已用*标注