項(xiàng)目發(fā)布
java web項(xiàng)目部署
我的項(xiàng)目是用maven來進(jìn)行管理的夜畴,使用SpringMVC框架作岖,開發(fā)工具是intellij idea戴尸,使用mysql數(shù)據(jù)庫(kù)规求。
由于一開始對(duì)整個(gè)流程很陌生,所以建立了一個(gè)簡(jiǎn)易的非maven的web項(xiàng)目,來測(cè)試是否部署服務(wù)器成功。
我實(shí)現(xiàn)的邏輯是這樣的:在本地生成項(xiàng)目的war包,然后傳送到服務(wù)器的tomcat的webapps目錄下津辩,之后就可以通過域名訪問了。
于是問題主要是在于如何在intellij idea中產(chǎn)生war包容劳。
在動(dòng)手之前注意一點(diǎn):
本地項(xiàng)目配置的訪問端口喘沿,需要和服務(wù)器中tomcat的開啟端口一致
配置服務(wù)器中tomcat的端口,需要修改服務(wù)器目錄下conf下的server.xml文件
在文件中找到這一段
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其中的port值改為和本地項(xiàng)目相同的端口值竭贩。
非maven項(xiàng)目
首先在本地部署一遍蚜印,確認(rèn)在本地,程序沒有任何問題留量。成功后窄赋,會(huì)發(fā)現(xiàn)在工程目錄下出現(xiàn)一個(gè)out的目錄,里面放該項(xiàng)目的生成文件楼熄。
之后點(diǎn)擊File->Project Structure->Artifacts忆绰。之后點(diǎn)擊上方的綠色加號(hào),選擇web Application:archive可岂,選擇for 'xxx'那一項(xiàng)错敢,然后可能會(huì)出現(xiàn)不存在MANIFEST文件的提示,直接點(diǎn)擊創(chuàng)建就好缕粹。最后點(diǎn)擊確定伐债。
如圖:
接著點(diǎn)擊菜單欄中的Build->Build Artifacts,選擇war的那一項(xiàng)致开,點(diǎn)擊Build。之后再out目錄下會(huì)找到.war文件萎馅。然后上傳到服務(wù)器的webapps目錄下双戳。關(guān)閉服務(wù)器,再打開服務(wù)器即可訪問糜芳,什么都不用配置飒货。
maven項(xiàng)目
本地部署一遍,確保沒有錯(cuò)誤峭竣,本地訪問成功塘辅,這時(shí)會(huì)生成target文件夾。然后返回intellij idea皆撩,在IDE的右邊側(cè)欄找到Maven Project按鈕扣墩,點(diǎn)擊哲银,選擇Lifecycle,雙擊package呻惕。就可以生成.tar文件荆责,自動(dòng)生成在target目錄下。
同理上傳服務(wù)器亚脆,無需配置做院,重啟一下tomcat即可訪問你的項(xiàng)目。
mysql上傳與部署
一般的項(xiàng)目必然是帶數(shù)據(jù)庫(kù)的濒持, 項(xiàng)目部署到服務(wù)器上的時(shí)候键耕,也往往需要把數(shù)據(jù)庫(kù)放上去。
上傳數(shù)據(jù)庫(kù)的邏輯是這樣的:首先在本地將數(shù)據(jù)庫(kù)打包成sql文件柑营,傳到服務(wù)器中屈雄。之后在服務(wù)器建立一個(gè)新的數(shù)據(jù)庫(kù),導(dǎo)入sql文件由境。
部署數(shù)據(jù)庫(kù)
在終端接入服務(wù)器后棚亩,進(jìn)入mysql的環(huán)境
mysql -u root -p
會(huì)提示你輸入密碼,之后進(jìn)入虏杰。
先查看一下有哪些數(shù)據(jù)庫(kù):
show databases;
然后創(chuàng)建數(shù)據(jù)庫(kù)
create database learnjava;
我建立了名字叫做learnjava的數(shù)據(jù)庫(kù)讥蟆,可以再show一下看看有沒有這個(gè)數(shù)據(jù)庫(kù)。
然后我們進(jìn)入這個(gè)數(shù)據(jù)庫(kù):
use learnjava;
進(jìn)入后開始導(dǎo)入sql文件:
source /root/Downloads/learnjava.sql;
后面是我本地上傳的sql文件的路徑纺阔。
導(dǎo)入后確認(rèn)一下是不是成功瘸彤,可以查看數(shù)據(jù)表和某張數(shù)據(jù)表的詳細(xì)數(shù)據(jù):
show tables;
select * from user;