在項目管理的過程中,初期可能一個項目并不大,所以建立了一個獨立的web項目,但隨著項目的發展,業務功能越來越多,但從業務依賴的角度來說,卻是可以劃分為多項目的。于是需要將這個龐大的web項目拆分成一個個獨立的子web項目。這樣的好處是,代碼按模塊劃分,代碼獨立打成war包后,可以獨立部署,如果某應用訪問量大的話,也可以獨立出來做分布式應用。
以上是一般項目發展的歷程,而這里我想說的是,在項目建立初期,就已經預見到了未來會是多項目依賴的這種情況,那在這個階段,可以考慮直接劃分為多個模塊,而在打包的過程中直接構建成為一個war包來運行:
1、按模塊劃分,采用標準的svn目錄結構創建多個web項目(各模塊可以獨立運行),一個common項目(各模塊的公用模塊,打成jar包)
2、為每個項目創建pom-{projectName}.xml,編寫好相應的配置
3、選擇其中一個項目,增加一個合并打包的配置pom-all.xml,增加如下配置:
1 <plugin>
2 <artifactId>maven-war-plugin</artifactId>
3 <version>2.1.1</version>
4 <configuration>
5 <warSourceDirectory>src/main/WebContent</warSourceDirectory>
6 <overlays>
7 <overlay>
8 <groupId>com.xyz</groupId>
9 <artifactId>cms</artifactId>
10 <excludes>
11 <exclude>WEB-INF/lib/*</exclude>
12 <exclude>WEB-INF/web.xml</exclude>
13 </excludes>
14 </overlay>
15 </overlays>
16 </configuration>
17 </plugin>
18
19 <dependency>
20 <groupId>com.xyz</groupId>
21 <artifactId>cms</artifactId>
22 <version>1.0</version>
23 <type>war</type>
24 <scope>runtime</scope>
25 </dependency>
4、舉例:先運行mvn install -f pom-cms.xml
再運行mvn package -f pom-all.xml 即可
技術文章收藏站點