maven—大型项目模块化

来源:互联网 发布:行政级轿车 知乎 编辑:程序博客网 时间:2024/05/17 21:53

序:

在上一篇对maven项目有了初步的了解。这一篇文章主要介绍一下大型项目通过Maven来拆分项目,进行项目的模块化。为什么我们需要对大型项目进行模块化处理。

随着公司的业务发展和日益增长的需求,我们的项目会依赖更多的第三方组件,会在项目中加入更多的功能。例如阿里巴巴电商项目,最开始可能只是一个电商项目。但随着业务的壮大,加入ERP,支付,金融,客服,旺旺语音等。越来越多衍生出来的服务和功能,不可能一直放在一个项目中,这样的系统也太难维护。加上开发水平的良莠不齐,可能存在改了一块代码,不小心把主干代码也给删了。导致整个系统的崩溃,这样的损失是项目承受不起的。

当然,阿里的技术不可能仅仅是模块化项目,还有微服务,以及其他更多的内容。这里就是简单的提一下,中小型企业也会运用到这种技术,来解决项目过于复杂,冗余。

 模块化大致分为两种,一种是业务层面的模块化,还有一种是开发模型方面的模块化。

这里就简单讲下开发模型方面的模块化。

什么是java开发模型方面的模块化?

一般在开发中,我们会将开发内容进行分层。典型的MVC模型,就是将项目分为model(模型),view(视图),controller(控制层)。在做项目时我们会提供一些项目独有的工具(util),或者通过自行定制开发项目的基类(system)。这些在项目中,按照一般的开发习惯,我们会按业务分模块,再在各个业务模块中,自行去创建这些层级关系。稍微打磨的项目,可能就是再抽一些超类或者将共有的类抽成全局通用的放在system包里面。

但我们可以将项目一开始就进行模块化处理,将一个项目中的分层思想进行模块化。例如项目足够大,model就可以成为一个单独的模块,视图(view)也是。web也可以是一个模块。系统通用平台也可以是一个模块。下面就讲讲,怎么自行创建一个模块化的项目以及其中的配置。

maven的最大的特点之一就是可以把项目模块化。

前面的一篇文章MAVEN创建并打包web项目已经创建了一个简单的webapp,注意这个webapp的打包方式是war。如果现在又要划分出来一个模块,而webapp依赖这个新划分的模块,应该怎么做呢,磨叽!

首先创建一个maven module,它的parent是test,不能是其他的,因为只有test的打包方式是pom。如下图所示:


模块test_module的打包方式选择jar,但是尽管已经选择了,在自动生成的test_module/pom.xml中打包方式依然没指明,需要手动添加,如下图所示:


下面需要把test_module作为test_web的依赖,操作如下:


操作完成后如下图,现在新的模块已经添加完成了。


MAVEN创建并打包web项目中的打包方式是用命令行,显然比较麻烦。那么我们可以使用eclipse来打包。


按照上图选择maven build,会进入下图所示goals设置界面,把之前执行的mvn  clean package命令输入就可以了。


再次点击之前点击的maven build控制台就开始运作了:


细心的人会发现有个maven install,其实这个也是可以打包的,点击它后控制台的信息如下:

[plain] view plaincopy
  1. [INFO] Building war: F:\wangpeng\MyR\projects\test\test_web\target\test_web.war  
  2. [INFO] WEB-INF\web.xml already added, skipping  
  3. [INFO]   
  4. [INFO] --- maven-install-plugin:2.4:install (default-install) @ test_web ---  
  5. [INFO] Installing F:\wangpeng\MyR\projects\test\test_web\target\test_web.war to C:\Users\wangpeng\.m2\repository\com\wangpeng\testmaven\test_web\0.0.1-SNAPSHOT\test_web-0.0.1-SNAPSHOT.war  
  6. [INFO] Installing F:\wangpeng\MyR\projects\test\test_web\pom.xml to C:\Users\wangpeng\.m2\repository\com\wangpeng\testmaven\test_web\0.0.1-SNAPSHOT\test_web-0.0.1-SNAPSHOT.pom  
  7. [INFO] ------------------------------------------------------------------------  
  8. [INFO] Reactor Summary:  
  9. [INFO]   
  10. [INFO] test .............................................. SUCCESS [  0.429 s]  
  11. [INFO] test_module ....................................... SUCCESS [  1.119 s]  
  12. [INFO] test_web Maven Webapp ............................. SUCCESS [  0.491 s]  
  13. [INFO] ------------------------------------------------------------------------  
  14. [INFO] BUILD SUCCESS  
  15. [INFO] ------------------------------------------------------------------------  
  16. [INFO] Total time: 2.154 s  
  17. [INFO] Finished at: 2015-08-13T17:31:22+08:00  
  18. [INFO] Final Memory: 11M/153M  
  19. [INFO] ------------------------------------------------------------------------  
注意Installing那一行,说明此命令不仅是打包,他会把打好的包复制到本地仓库。看一下我的仓库:


打开那个war包,进入WEB-INF/lib,你会发现test_module已经打包成jar作为war的一部分了。







阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小腿抻着筋了怎么办 儿童有擦腿习惯怎么办 得了肌无力怎么办 肩周炎很痛怎么办 胳膊神经痛怎么办 大腿有结节怎么办 胳膊上有筋包怎么办 孕妇骨盆前倾怎么办 老年人胳膊麻怎么办 手聚筋了怎么办 小臂韧带拉伤怎么办 最近暴饮暴食怎么办 早晨暴饮暴食怎么办 减肥不成功怎么办 胳膊里面疼怎么办 肩膀抻着筋了怎么办 胳膊突然酸痛怎么办 胳膊骨头痛怎么办 上臂肌肉损伤怎么办 肩扭到筋了怎么办 手臂伤到筋了怎么办 胳膊肘扭到筋了怎么办 手臂痉挛怎么办 腰抻着筋了怎么办 腰抻着了疼怎么办 抻腰怎么办 胳膊抽搐怎么办 胳膊疼伸不直怎么办 手臂烧伤疤痕怎么办 手臂烧伤怎么办 胳膊筋痛怎么办 胳膊的筋很痛怎么办 胳膊别着筋了怎么办 后肩胛骨扭到筋怎么办 胳膊腕筋疼怎么办 肩胛骨筋扭着了怎么办 肩膀扭到筋怎么办 下肢不安综合症怎么办 秽语综合症怎么办 手臂突然抽筋怎么办 小臂抽筋怎么办