【教程】IDEA配置Tomcat以及如何導(dǎo)入導(dǎo)出包含java源碼的war包
今天第一次寫web課的上機(jī)實(shí)驗項目,實(shí)驗說明給的全是eclipse的操作流程,導(dǎo)致本菜雞以及班上許許多多使用IDEA甚至spring項目閉眼都能寫的大牛無從下手(因為springboot集成了Tomcat)。經(jīng)過本人今日六個小時在某度搜索站的熱血奮戰(zhàn),尚且總結(jié)了一套教程用以答疑解惑。

一. 如何導(dǎo)入war包,如何配置Tomcat?
idea不能直接導(dǎo)入war包,比較麻煩,想要導(dǎo)入war包只能手動操作。
首先,將下載好的war包后綴名改為rar,備用。

?
接下來在idea中新建一個web應(yīng)用項目,我們在生成器欄里選擇Jakarta EE(舊版本是Java Enterprise),模板設(shè)置為Web應(yīng)用程序,應(yīng)用程序服務(wù)器設(shè)置為Tomcat,如果沒有,點(diǎn)擊右邊的新建按鈕,選擇我們解壓好的Tomcat文件夾即可。

?
單擊下一步,確認(rèn)在規(guī)范目錄下已經(jīng)勾選好Servlet,單擊創(chuàng)建。

?
這是項目的基礎(chǔ)目錄結(jié)構(gòu)。

?
刪除webapp文件夾下的所有內(nèi)容,然后把rar里所有文件丟到webapp下。

接下來處理WEB-INF文件夾的內(nèi)容。刪除/src/main/java文件夾下的內(nèi)容,把classes文件夾里的.java文件移到/src/main/java里面。(注意,沒有特殊要求不要把class文件丟進(jìn)去,你可以放進(jìn)去之后手動刪掉class文件)

?
接下來右擊項目名稱,點(diǎn)擊打開模塊設(shè)置。當(dāng)然,你也可以通過 文件-項目結(jié)構(gòu)-項目設(shè)置-模塊 找到接下來的操作界面。

?
點(diǎn)擊“依賴”,選擇“JAR或目錄…”,然后選中項目內(nèi)WEB-INF文件夾里面的lib文件夾,添加后點(diǎn)擊確定即可。

?


現(xiàn)在我們來配置運(yùn)行web項目。右上角運(yùn)行按鈕旁邊應(yīng)該會出現(xiàn)一個Tomcat服務(wù)器的運(yùn)行配置。

?
不管有沒有,點(diǎn)開下拉欄,點(diǎn)擊編輯配置。

?
如果沒有,就點(diǎn)擊左上角“+”添加新配置,點(diǎn)擊Tomcat服務(wù)器-本地。

?
右側(cè)欄目中,在“應(yīng)用程序服務(wù)器”這一行點(diǎn)擊配置,選擇Tomcat解壓的文件夾即可。

?
然后單擊“部署”,在“在服務(wù)器啟動時部署”欄中應(yīng)該會出現(xiàn)一個已經(jīng)配置好的工件。

?
如果沒有,點(diǎn)擊“+”然后選擇工件即可。如果沒有工件選項,需要去項目結(jié)構(gòu)自行配置,這說明前面的流程你沒有跟著我的教程走,idea沒有識別到你的web.xml。

?
現(xiàn)在點(diǎn)擊運(yùn)行,網(wǎng)頁應(yīng)該就可以正常跑起來了。

?

二. 如何導(dǎo)出war包并且包含java源碼?
?
由于我們創(chuàng)建的是Maven項目,而Maven已經(jīng)為我們提供了輕松導(dǎo)出war包的指令,所以導(dǎo)出war包并非難事。創(chuàng)建項目后idea應(yīng)該會自動幫我們安裝maven,如果沒有或者安裝不了,可以參考這個視頻BV16Q4y127BZ。
?
在Maven項目中,pom.xml(Project Object Model)對于項目的配置起著主導(dǎo)控制作用,我們有空可以百度自學(xué)簡單了解Maven項目中pom.xml的結(jié)構(gòu)與功能。
?
我們打開項目的pom.xml,重點(diǎn)看到packaging標(biāo)簽。這個標(biāo)簽管理maven項目的導(dǎo)出格式,有jar、war、ear和pom四種。大部分項目默認(rèn)是jar,這意味著項目會導(dǎo)出成jar包,我們把里面的值改成war,像圖中這樣即可。

?
接下來我們打開idea的終端,或者在cmd中使用cd指令跳轉(zhuǎn)到項目目錄,輸入指令:
mvn clean package
(這條指令是clean和package的組合,clean用于清除target生成的內(nèi)容,package用于生成內(nèi)容)

?
等待片刻,接下來我們可以看到在項目根目錄/target文件夾下出現(xiàn)了打包好的war文件。

?
這個時候我們會發(fā)現(xiàn),導(dǎo)出的war包里面不包含我們在src/main/java文件夾下的java文件,只包含生成好的class文件,這是為什么呢?
?
這是因為,默認(rèn)情況下,maven只把我們的resources文件夾和webapp文件夾當(dāng)成了資源文件夾處理。我們繼續(xù)處理pom.xml。
?
在pom結(jié)尾會出現(xiàn)build標(biāo)簽。

?
在<build>標(biāo)簽中加入如下內(nèi)容:(包括springboot項目也可以這樣做)
<resources>
?? <resource>
????? <directory>src/main/java</directory>
?? </resource>
</resources>

?
springboot項目:

?
現(xiàn)在我們重新執(zhí)行mvn clean package指令。執(zhí)行完后我們會發(fā)現(xiàn),在生成的war包的/WEB_INF/classes里面有我們需要的java代碼了。(這里我拿我自己寫的spring項目生成的文件演示)
