Java項(xiàng)目打包部署之部署jar包和war包
一、概述:
本文將介紹將Java項(xiàng)目部署到Linux服務(wù)器上的步驟。首先,你需要了解服務(wù)器的基本知識(shí)和安裝Java環(huán)境的方法。然后,我們就jar包和war包兩種應(yīng)用部署到Linux服務(wù)器上來(lái)進(jìn)行講解,包括如何將應(yīng)用程序上傳到服務(wù)器,如何配置服務(wù)器,以及如何啟動(dòng)和停止應(yīng)用程序。
二、安裝Java環(huán)境
在Linux服務(wù)器上安裝Java環(huán)境是第一步。Java是一種跨平臺(tái)的編程語(yǔ)言,因此可以在多種操作系統(tǒng)上運(yùn)行。在Linux服務(wù)器上安裝Java環(huán)境非常簡(jiǎn)單,只需使用類似于apt-get或yum等命令行工具,通過(guò)命令安裝即可。
以下是在CentOS上安裝Java的命令:
1.查找當(dāng)前可以下載的jdk的版本
yum search java|grep jdk
2.執(zhí)行安裝命令
yum install java-1.8.0-openjdk
確保Java已安裝正確,通過(guò)以下命令檢查Java版本:
java -version
三、安裝Tomcat(war包需要)
將war項(xiàng)目部署到Linux服務(wù)器上后,需要配置服務(wù)器以運(yùn)行Java應(yīng)用程序。需要安裝Tomcat或Jetty等Web服務(wù)器來(lái)部署Java應(yīng)用程序。這些Web服務(wù)器可以從官方網(wǎng)站或代碼庫(kù)中下載。例如,要安裝Tomcat,請(qǐng)按照以下步驟操作:
在官方Tomcat網(wǎng)站上下載Tomcat .
解壓縮Tomcat到您的Linux服務(wù)器上,路徑為/opt/tomcat/latest。
設(shè)置環(huán)境變量,以便Tomcat可以使用Java 8。將以下代碼添加到您的.bashrc文件中:
export JAVA_HOME=/usr/ export CATALINA_HOME=/opt/tomcat/latest export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
這里linux配置Tomcat并沒(méi)有寫的太詳細(xì),如果有些覺(jué)得不太懂得, 可以搜一下詳細(xì)的linux下安裝Tomcat的教程
四、部署 jar 包
1. 打包 jar 包
在項(xiàng)目根目錄下執(zhí)行以下 Maven 命令打包 jar 包:
mvn clean package
在 target 目錄下生成 jar 包。
2. 將 jar 包上傳到 Linux 服務(wù)器
上傳Java項(xiàng)目到服務(wù)器是準(zhǔn)備要執(zhí)行的下一步。通常可以使用FTP等文件傳輸工具將Java項(xiàng)目上傳到服務(wù)器。如果使用Windows操作系統(tǒng),則可以使用Xftp客戶端等工具,將Java項(xiàng)目上傳到Linux服務(wù)器上。
如果您想從Linux本地終端上傳Java項(xiàng)目,在Linux本地終端中使用rsync命令即可。以下是一個(gè)例:
rsync -avz -e ssh /path/to/local/java/project/ user@remote.server:/path/to/remote/java/project/
替換/path/to/local/java/project/和/path/to/remote/java/project/路徑,使用自己的路徑。
注意: 通常我們每次打包新上線的時(shí)候, 會(huì)把當(dāng)前正在運(yùn)行的包停掉但是保存著,上傳時(shí)千萬(wàn)不要直接覆蓋! 啟動(dòng)新的包后也不要立即刪除了之前的包! 不然你會(huì)后悔的。。。
3. 運(yùn)行 jar 包
運(yùn)行時(shí)按一下幾個(gè)步驟:
- 進(jìn)入jar包所在目錄
cd /../..
- 查詢所有進(jìn)程,找到項(xiàng)目端口號(hào)對(duì)應(yīng)的PID
netstat -ntpl
假設(shè)找到的項(xiàng)目的PID為: 8548
- 執(zhí)行殺進(jìn)程命令(8548為PID)
kill -9 8548
- 再次執(zhí)行查詢命令,沒(méi)有項(xiàng)目端口,表示殺死進(jìn)程成功
netstat -ntpl
- 執(zhí)行啟動(dòng)jar包命令
nohup java -jar 項(xiàng)目包.jar >> 日志.log &
- 日志中顯示啟動(dòng)完畢后退出日志 執(zhí)行查看進(jìn)程命令
netstat -ntpl
- 查看實(shí)施日志
tail -f 日志.log
五、部署 war 包
1.上傳war包
前面咱們已經(jīng)安裝了Tomcat, 并且介紹了怎么去打包怎么把本地的jar包上傳到linux服務(wù)器上,實(shí)際上部署war包的方式和部署jar包的方式區(qū)別并不大,前面都是打包 然后上傳war包,只不過(guò)war包需要上傳到Tomcat 的 webapps 目錄下,這個(gè)是固定的
打包: mvn clean package
2. 部署 war 包
- 停掉當(dāng)前正在運(yùn)行的Tomcat服務(wù)器
/../tomcat/latest/bin/shutdown.sh
- 停掉Tomcat之后查詢項(xiàng)目端口, 看是否停止成功
netstat -ntpl
刪除tomcat的webapps目錄下的文件及文件夾
將打好包的war包上傳到webapps 目錄下
啟動(dòng) Tomcat。
/../tomcat/bin/startup.sh
- 執(zhí)行查看進(jìn)程命令
netstat -ntpl
- 查看實(shí)施日志
tail -f 日志.log
六、jar 包和 war 包的優(yōu)缺點(diǎn)
- jar 包的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- jar 包比較簡(jiǎn)單,可以在命令行上直接運(yùn)行。
- jar 包非常適合用于獨(dú)立的 Java 應(yīng)用程序。
缺點(diǎn):
- jar 包不支持 Web 應(yīng)用程序。如果要部署 Web 應(yīng)用程序,需要使用 war 包。
- jar 包沒(méi)有標(biāo)準(zhǔn)的 Web 部署方式,需要手動(dòng)編寫啟動(dòng)腳本。
- war 包的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- war 包是用于部署 Web 應(yīng)用程序的標(biāo)準(zhǔn)方式。
- war 包可以自動(dòng)安裝配置。
缺點(diǎn):
- 部署和配置 war 包相對(duì) jar 包來(lái)說(shuō)比較復(fù)雜。
- 如果還沒(méi)有安裝 Java 應(yīng)用程序,需要額外安裝 Tomcat 等服務(wù)器。
七、總結(jié)一哈
對(duì)于 Java 項(xiàng)目的打包和部署操作,我們建議使用 Maven 進(jìn)行管理,特別是 Maven 插件 shade 和 war。使用這些插件可以非常方便地打包和部署項(xiàng)目。在使用時(shí)要注意依賴庫(kù)的版本兼容。
在部署 jar 包時(shí),可以將啟動(dòng)命令寫入 shell 腳本,方便管理。在部署 war 包時(shí),我們建議使用自動(dòng)化配置工具 Jenkins ,可以方便地部署和管理多臺(tái)服務(wù)器上的應(yīng)用程序。
總之,選擇合適的打包腳本插件和部署工具,可以為 Java 項(xiàng)目的打包和部署操作帶來(lái)更高效和方便的體驗(yàn)。
到此這篇關(guān)于Java項(xiàng)目打包部署之部署jar包和war包的文章就介紹到這了,更多相關(guān)部署jar包和war包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaWeb頁(yè)面中防止點(diǎn)擊Backspace網(wǎng)頁(yè)后退情況
當(dāng)鍵盤敲下后退鍵(Backspace)后怎么防止網(wǎng)頁(yè)后退情況呢?今天小編通過(guò)本文給大家詳細(xì)介紹下,感興趣的朋友一起看看吧2016-11-11淺談一下數(shù)據(jù)庫(kù)連接池Druid德魯伊
數(shù)據(jù)庫(kù)連接池就是一個(gè)容器持有多個(gè)數(shù)據(jù)庫(kù)連接,當(dāng)程序需要操作數(shù)據(jù)庫(kù)的時(shí)候直接從池中取出連接,使用完之后再還回去,和線程池一個(gè)道理,需要的朋友可以參考下2023-05-05使用IDEA向Gitee提交SpringBoot項(xiàng)目進(jìn)行遠(yuǎn)程管理
本文主要介紹了使用IDEA向Gitee提交SpringBoot項(xiàng)目進(jìn)行遠(yuǎn)程管理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01怎樣將一個(gè)JAR包添加到Java應(yīng)用程序的Boot?Classpath中
本文文章給大家介紹如何將一個(gè)JAR包添加到Java應(yīng)用程序的Boot?Classpath中,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的的朋友參考下吧2023-11-11聊聊java中一些減少if else 的編碼習(xí)慣的方法
這篇文章主要介紹了聊聊java中一些減少if else 的編碼習(xí)慣的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08注意Java中?new?BigDecimal(double?val)?的使用
這篇文章主要介紹了注意Java中?new?BigDecimal(double?val)?的使用,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07