日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【Maven3教程】Maven多工程、多模块

發(fā)布時(shí)間:2025/5/22 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Maven3教程】Maven多工程、多模块 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

項(xiàng)目工程拆分原則?

? ? 功能分層拆分、業(yè)務(wù)功能拆分?下面一個(gè)電商項(xiàng)目(Jmall)為例:

功能分層拆分

????按照項(xiàng)目功能分層,分為common(java工程)、dao(java工程)、service(java工程)、web(web工程)等

?

業(yè)務(wù)功能拆分

????按照業(yè)務(wù)拆分,分為common工程(java工程)、用戶中心user(web工程)、商品中心goods(web工程)、訂單中心order(web工程)、總web(web工程)

????

總結(jié)對比:

隨著業(yè)務(wù)復(fù)雜的增加、按照功能分層的拆分,每個(gè)工程會越來越繁重,務(wù)必會達(dá)到瓶頸。但是按照業(yè)務(wù)功能的劃分,每個(gè)模塊功能都是一個(gè)完整的web功能可以獨(dú)立運(yùn)行、開發(fā)、協(xié)作,同時(shí)又能合并成一個(gè)總的web的工程,使其組成一個(gè)平臺,隨著業(yè)務(wù)增加,可以重新拆分新的工程,更好的適應(yīng)業(yè)務(wù)整合。推薦按照業(yè)務(wù)功能進(jìn)行拆分

本人不善言辭,覺得我說的不對,可以參考其他優(yōu)秀的項(xiàng)目,例如spring業(yè)務(wù)按找業(yè)務(wù)功能進(jìn)行拆分,如下圖:

下面就開始以Jmall為例子按照業(yè)務(wù)劃分的原則,開始搭建maven多工程項(xiàng)目

首先創(chuàng)建一個(gè)父工程jmall(pom),用于管理

接下來創(chuàng)建common工程(java工程)

接下來構(gòu)建user工程(web工程)

依此類推,構(gòu)建好其他工程,如下圖所示:

其中需要注意的是jmall-web工程是用于其他工程合并成總工程的項(xiàng)目

構(gòu)建好工程之后,首先Install一下,看是否成功:

測試jmall-common的依賴

在jmall-common中新建一個(gè)BaseTest的基類,如下圖:

在jmall-user工程調(diào)用BaseTest,如下圖:

首先需要添加jmall-common工程的依賴:

調(diào)用如下:

執(zhí)行結(jié)果如下:

合并總的web工程

合并為一個(gè)總的web工程,需要借助maven-war-plugin的插件,如下圖所示:

需要添加工程依賴,如下圖:

jmall-web完整的pom.xml,如下:

<?xml version="1.0"?> <projectxsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>org.zhanghua</groupId><artifactId>jmall</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>org.zhanghua</groupId><artifactId>jmall-web</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>jmall-web Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>org.zhanghua</groupId><artifactId>jmall-user</artifactId><version>0.0.1-SNAPSHOT</version><type>war</type></dependency><dependency><groupId>org.zhanghua</groupId><artifactId>jmall-goods</artifactId><version>0.0.1-SNAPSHOT</version><type>war</type></dependency><dependency><groupId>org.zhanghua</groupId><artifactId>jmall-order</artifactId><version>0.0.1-SNAPSHOT</version><type>war</type></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><finalName>jmall-web</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.6</version><configuration><overlays><overlay><groupId>org.zhanghua</groupId><artifactId>jmall-user</artifactId></overlay><overlay><groupId>org.zhanghua</groupId><artifactId>jmall-goods</artifactId></overlay><overlay><groupId>org.zhanghua</groupId><artifactId>jmall-order</artifactId></overlay></overlays></configuration></plugin><!-- jetty插件 --><plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>7.6.15.v20140411</version><configuration><connectors><connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"><port>9080</port></connector></connectors><webAppConfig><contextPath>/</contextPath></webAppConfig><systemProperties><systemProperty><name>org.mortbay.util.URI.charset</name><value>UTF-8</value></systemProperty></systemProperties></configuration></plugin></plugins></build> </project>

接下來,我們執(zhí)行install,看jmall-web的war是否已經(jīng)把jmall-user,jmall-user,jmall-goods,jmall-order工程合并進(jìn)來了,如下圖:

如上圖所示,合并正確,符合我們的要求.

注意到index.jsp只有一個(gè)了,我們每個(gè)工程里面都會有index.jsp,但是最后只有一個(gè)了,是因?yàn)槲覀僯mall-web工程里面有index,會這個(gè)jmall-web的為準(zhǔn)。

總結(jié):如果多個(gè)war相同路徑且同名的文件,如果總的web工程里面有,那么總的這個(gè)會覆蓋分支的,如果總的沒有,那么看合并的順序,保留第一個(gè)順序的文件。

最后通過jetty:run運(yùn)行成功,如下圖:

代碼地址:http://git.oschina.net/auhgnahz/jmall?

?

轉(zhuǎn)載于:https://my.oschina.net/Auhgnahz/blog/724950

總結(jié)

以上是生活随笔為你收集整理的【Maven3教程】Maven多工程、多模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。