MAVEN项目模块化

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,事实上这个也是能够打包的,点击它后控制台的信息例如以下:

[INFO] Building war: F:wangpengMyRprojects	est	est_web	arget	est_web.war
[INFO] WEB-INFweb.xml already added, skipping
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ test_web ---
[INFO] Installing F:wangpengMyRprojects	est	est_web	arget	est_web.war to C:Userswangpeng.m2
epositorycomwangpeng	estmaven	est_web.0.1-SNAPSHOT	est_web-0.0.1-SNAPSHOT.war
[INFO] Installing F:wangpengMyRprojects	est	est_webpom.xml to C:Userswangpeng.m2
epositorycomwangpeng	estmaven	est_web.0.1-SNAPSHOT	est_web-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] test .............................................. SUCCESS [  0.429 s]
[INFO] test_module ....................................... SUCCESS [  1.119 s]
[INFO] test_web Maven Webapp ............................. SUCCESS [  0.491 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.154 s
[INFO] Finished at: 2015-08-13T17:31:22+08:00
[INFO] Final Memory: 11M/153M
[INFO] ------------------------------------------------------------------------
注意Installing那一行。说明此命令不仅是打包。他会把打好的包拷贝到本地仓库。看一下我的仓库:


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




原文地址:https://www.cnblogs.com/yfceshi/p/6884801.html