Maven打包JavaWeb項(xiàng)目的兩種實(shí)現(xiàn)方式
Maven打包web項(xiàng)目方式及步驟
我最近學(xué)習(xí)的打包方式有兩種,分為如下:
- 第一種是通過命令行打包:要知道m(xù)aven常用的命令
- 第二種是通過eclipse打包:簡單方便就可以打包,是普遍使用的方式
一、通過eclipse打包web項(xiàng)目
(1)進(jìn)入eclipse打包右鍵點(diǎn)擊項(xiàng)目,選擇Run As。

(2)任何打包前先進(jìn)行清理,選擇Maven clean。等待console出現(xiàn)如下圖所示的BUILD SUCCESS,清理之前的包

(3)之后Maven打包處理得到以下窗口,再Goals中輸入packge(也可以跳過clean步驟嗎,再這里直接輸入clean package)
選擇跳過測試Skip Tests與更新快照Update Snapshots

Goals中其實(shí)填入的的就是maven常用的命令:
mvn package:打包命令mvn install: 打包后將其安裝在本地倉庫,日后可以調(diào)用mvn test:運(yùn)行測試mvn clean:清除之前的包mvn compile:變異源代碼,生成class文件- ………
(4)等待Console出現(xiàn)打包成功的信息,也可能會失敗。

(5)之后查看target下是否存在打包成功的class文件及xxxxx.war包
打包之前項(xiàng)目的target文件夾如下,是沒有任何的class文件以及xxx.war包的

打包之后查看項(xiàng)目的target文件夾,存在了class字節(jié)碼文件與war包

(6)之后將war拷貝到tomcat的wapapps文件夾下,即可以通過訪問http://localhost:8080/xxx項(xiàng)目名稱訪問,這樣做的好處就是可以脫離IDE,進(jìn)行打包發(fā)布。
二、通過命令來實(shí)現(xiàn)打包
再安裝好maven環(huán)境之后,可以再dos下進(jìn)行maven命令進(jìn)行項(xiàng)目的打包。其大體步驟跟第一種方式大同小異。
(1)進(jìn)入項(xiàng)目所在目錄,進(jìn)行clean命令
mvn clean

(2)打包+傳入配置文件參數(shù)+跳過測試
mvn package -Pqa -DskipTests
package:基本命令,進(jìn)行打包-Pqa:項(xiàng)目開發(fā)需要有多個(gè)環(huán)境,一般為開發(fā),測試,預(yù)發(fā),正式4個(gè)環(huán)境,通過maven可以實(shí)現(xiàn)按不同環(huán)境進(jìn)行打包部署。也就是dev(開發(fā))、qa(測試)、pre(預(yù)發(fā))、生產(chǎn)正式(prod)四個(gè)環(huán)境,對應(yīng)的都有各自的配置文件properties。

- 通過-P傳入環(huán)境id參數(shù)就可以選擇環(huán)境,比如傳入qa,即命令-Pqa 。
- 會得到qa.peroperties配置文件,這是因?yàn)槲覀冊趐om.xml文件中有這樣的配置
<build>
<filters>
<filter>src/main/resources/env/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
....
</build>其中${env}.properties就是讓我們傳入環(huán)境參數(shù)qa、dev、prod、pre。
- DskipTests:跳過測試,否則打包過程很慢

(4)同樣在target文件夾下找到項(xiàng)目war包,然后拷貝到tomcat的webapps文件夾下進(jìn)行打包發(fā)布配置
在打包過程中需要注意的幾點(diǎn):
- mvn打包必須有JDK環(huán)境下才能正確打包。
- 正確配置pom.xml文件
- 版本號可以在pom.xml中修改
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中的之啟動過程obtainFreshBeanFactory詳解
這篇文章主要介紹了Spring中的之啟動過程obtainFreshBeanFactory詳解,在refresh時(shí),prepareRefresh后,馬上就調(diào)用了obtainFreshBeanFactory創(chuàng)建beanFactory以及掃描bean信息(beanDefinition),并通過BeanDefinitionRegistry注冊到容器中,需要的朋友可以參考下2024-02-02
springboot 注冊服務(wù)注冊中心(zk)的兩種方式詳解
本文通過一個(gè)demo講述一下這兩種注冊方式,使用的是傳統(tǒng)的向zk注冊的方案。對springboot 注冊zk的相關(guān)知識感興趣的朋友一起看看吧2018-01-01
JSON--List集合轉(zhuǎn)換成JSON對象詳解
這篇文章主要介紹了List集合轉(zhuǎn)換成JSON對象,小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。2017-01-01
Springboot+QueryDsl實(shí)現(xiàn)融合數(shù)據(jù)查詢
這篇文章主要將介紹的是 Springboot 使用 QueryDsl 實(shí)現(xiàn)融合數(shù)據(jù)查詢,文中有詳細(xì)的代碼講解,對 SpringBoot?Querydsl?查詢操作感興趣的朋友一起看看吧2023-08-08

