日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java war包合并,使用maven warpath插件合并多module的war包

發布時間:2025/3/11 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java war包合并,使用maven warpath插件合并多module的war包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

查看原文:http://www.yeetrack.com/?p=899

現在java

項目一般使用maven、gradle等工具來管理jar包、打包、發布。如果一個項目有很多模塊,那般是分成多個module,主目錄有個parent,負責包含全部的module,然后目錄中多個module文件夾,分別依賴parent或者其他module。最近有個項目,項目很久,代碼全部放在一起,隨著業務拓展變得與越來越龐大,于是其對進行module拆分。

問題

多個模塊可能交叉依賴。

每個模塊可能都會有前臺頁面的代碼,jsp、js等。

maven打包的時候能否war包、jar包一起打。

解決方式

交叉依賴必須解決,盡可能多的剝離獨立代碼,讓它成為其他模塊以來的包,這個包可以使用maven打成jar包。然后拆分其他的模塊,可以有順序依賴,但是不能交叉依賴。

多個模塊都有前臺代碼,前臺代碼在maven打包是不需要編譯,是直接copy到target目錄,然后再打成war包。這樣我們就可以把所有模塊的前臺代碼都抽離出來,當成一個單獨的module,如project-web模塊,當然也可以不抽離,但是需要用到第三步。

使用maven插件可以做到war、jar一起打。插件名字是maven-jar-plugin。示例pom配置如下(在pom.xml開頭中指定打包類型是war):

org.apache.maven.plugins

maven-jar-plugin

make-a-jar

compile

jar

執行mvn install就可以得到war和jar包,默認是在target文件夾下。

介紹就這些,下面是示例的pom配置,首先parent中的pom.xml(注意parent的打包類型是pom):

com.yeetrack.project

project-parent

1.0-SNAPSHOT

pom

My Maven Webapp

common

module-one

module-two

module-three

在各個模塊中配置parent項目(下面是module-one):

com.yeetrack.project

module-one

1.0-SNAPSHOT

jar

module-one

com.yeetrack.project

project-parent

1.0-SNAPSHOT

如果module two依賴module one,有兩種情況:

module-one打jar包(此module沒有前臺代碼)

mvn

install后,就可以將該模塊打成jar包,然后安裝到本地maven倉庫,module-two就可以直接依賴,添加dependency即可。

module-two打war、jar同時打(此模塊有前臺代碼)

同時打war、jar方法,去看上面的第三步,打出war、jar包后。maven將module-one的war包安裝到本地倉庫,將jar包放在它的target文件夾中。這樣module需要依賴jar包,也需要war包(合并到自己的war中)。首先看依賴jar的dependency:

com.yeetrack.project

module-one

1.0-SNAPSHOT

jar

system

${project.basedir}/../module-one/target/module-one-1.0-SNAPSHOT.jar

再看依賴war的情況(兩個依賴,一個都不能少):

com.yeetrack.project

module-one

1.0-SNAPSHOT

war

com.yeetrack.project

module-one

1.0-SNAPSHOT

warpath

OK,這是依賴的配置,下面是打包的配置,既然它都依賴其他的war了,那么它的打包類型也就是war。其實就是在使用maven-war-plugin的基礎上添加一個maven-warpath-plugin:

org.apache.maven.plugins

maven-war-plugin

WEB-INF/lib

true

add-classes

Over,最后打包的時候,在parent中執行mvn install即可。

總結

以上是生活随笔為你收集整理的java war包合并,使用maven warpath插件合并多module的war包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。