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:\wangpeng\MyR\projects\test\test_web\target\test_web.war
[INFO] WEB-INF\web.xml already added, skipping
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ test_web ---
[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
[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
[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的一部分了。