Maven打包JavaWeb項(xiàng)目的兩種實(shí)現(xiàn)方式
Maven打包web項(xiàng)目方式及步驟
我最近學(xué)習(xí)的打包方式有兩種,分為如下:
- 第一種是通過(guò)命令行打包:要知道m(xù)aven常用的命令
- 第二種是通過(guò)eclipse打包:簡(jiǎn)單方便就可以打包,是普遍使用的方式
一、通過(guò)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(也可以跳過(guò)clean步驟嗎,再這里直接輸入clean package)
選擇跳過(guò)測(cè)試Skip Tests與更新快照Update Snapshots

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

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

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

(6)之后將war拷貝到tomcat的wapapps文件夾下,即可以通過(guò)訪問(wèn)http://localhost:8080/xxx項(xiàng)目名稱訪問(wèn),這樣做的好處就是可以脫離IDE,進(jìn)行打包發(fā)布。
二、通過(guò)命令來(lái)實(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ù)+跳過(guò)測(cè)試
mvn package -Pqa -DskipTests
package:基本命令,進(jìn)行打包-Pqa:項(xiàng)目開發(fā)需要有多個(gè)環(huán)境,一般為開發(fā),測(cè)試,預(yù)發(fā),正式4個(gè)環(huán)境,通過(guò)maven可以實(shí)現(xiàn)按不同環(huán)境進(jìn)行打包部署。也就是dev(開發(fā))、qa(測(cè)試)、pre(預(yù)發(fā))、生產(chǎn)正式(prod)四個(gè)環(huán)境,對(duì)應(yīng)的都有各自的配置文件properties。

- 通過(guò)-P傳入環(huán)境id參數(shù)就可以選擇環(huán)境,比如傳入qa,即命令-Pqa 。
- 會(huì)得到qa.peroperties配置文件,這是因?yàn)槲覀冊(cè)趐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:跳過(guò)測(cè)試,否則打包過(guò)程很慢

(4)同樣在target文件夾下找到項(xiàng)目war包,然后拷貝到tomcat的webapps文件夾下進(jìn)行打包發(fā)布配置
在打包過(guò)程中需要注意的幾點(diǎn):
- mvn打包必須有JDK環(huán)境下才能正確打包。
- 正確配置pom.xml文件
- 版本號(hào)可以在pom.xml中修改
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
synchronized底層原理之JVM層面的鎖實(shí)現(xiàn)細(xì)節(jié)與流程
本文從JVM底層視角,詳細(xì)拆解了synchronized的實(shí)現(xiàn)邏輯,涵蓋鎖的存儲(chǔ)載體(對(duì)象頭的MarkWord)、鎖的觸發(fā)指令(monitorenter/monitorexit指令和ACC_SYNCHRONIZED標(biāo)志位)以及鎖的調(diào)度機(jī)制,感興趣的朋友跟隨小編一起看看吧2026-01-01
Java實(shí)現(xiàn)簡(jiǎn)單的掃雷小程序
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單的掃雷小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過(guò)程詳解
這篇文章主要介紹了SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
如何利用SpringAOP的返回通知處理數(shù)據(jù)加密返回
這篇文章主要介紹了如何利用SpringAOP的返回通知處理數(shù)據(jù)加密返回,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-12-12
通過(guò)pipeline配置sonar自動(dòng)化實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了通過(guò)pipeline配置sonar自動(dòng)化實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Spring Boot 如何解決富文本上傳圖片跨域問(wèn)題
這篇文章主要介紹了Spring Boot 如何解決富文本上傳圖片跨域問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
spring的data派生查詢機(jī)制的實(shí)現(xiàn)
SpringData的派生查詢是一種通過(guò)方法名約定自動(dòng)生成數(shù)據(jù)庫(kù)查詢的機(jī)制,無(wú)需手動(dòng)編寫SQL或JPQL,下面就來(lái)介紹一下spring data派生查詢的實(shí)現(xiàn),感興趣的可以了解一下2025-03-03
springAop實(shí)現(xiàn)講解(看這篇夠了)
AOP面向切面編程是一種編程范式,它通過(guò)將通用的橫切關(guān)注點(diǎn)(如日志、事務(wù)、權(quán)限控制等)與業(yè)務(wù)邏輯分離,使得代碼更加清晰、簡(jiǎn)潔、易于維護(hù),這篇文章主要介紹了springAop實(shí)現(xiàn)講解(看這篇夠了),需要的朋友可以參考下2024-02-02
Java使用POI導(dǎo)出Excel(一):?jiǎn)蝧heet
這篇文章介紹了Java使用POI導(dǎo)出Excel的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10

