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的一部分了。