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

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

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

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

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

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

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

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

- 通過-P傳入環(huán)境id參數(shù)就可以選擇環(huán)境,比如傳入qa,即命令-Pqa 。
- 會得到qa.peroperties配置文件,這是因為我們在pom.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文件夾下找到項目war包,然后拷貝到tomcat的webapps文件夾下進行打包發(fā)布配置
在打包過程中需要注意的幾點:
- mvn打包必須有JDK環(huán)境下才能正確打包。
- 正確配置pom.xml文件
- 版本號可以在pom.xml中修改
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
synchronized底層原理之JVM層面的鎖實現(xiàn)細節(jié)與流程
本文從JVM底層視角,詳細拆解了synchronized的實現(xiàn)邏輯,涵蓋鎖的存儲載體(對象頭的MarkWord)、鎖的觸發(fā)指令(monitorenter/monitorexit指令和ACC_SYNCHRONIZED標(biāo)志位)以及鎖的調(diào)度機制,感興趣的朋友跟隨小編一起看看吧2026-01-01
SpringBoot服務(wù)端數(shù)據(jù)校驗過程詳解
這篇文章主要介紹了SpringBoot服務(wù)端數(shù)據(jù)校驗過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02
如何利用SpringAOP的返回通知處理數(shù)據(jù)加密返回
這篇文章主要介紹了如何利用SpringAOP的返回通知處理數(shù)據(jù)加密返回,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-12-12
通過pipeline配置sonar自動化實現(xiàn)過程解析
這篇文章主要介紹了通過pipeline配置sonar自動化實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
Java使用POI導(dǎo)出Excel(一):單sheet
這篇文章介紹了Java使用POI導(dǎo)出Excel的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10

