IDEA 如何導入別人的javaweb項目進行部署
前言
我主要是進行java的springboot項目和vue項目的開發(fā),但是架不住在這些框架興起之前,公司內(nèi)部已經(jīng)是有其他的老的框架,我需要在這些老的框架進行修改和調(diào)整代碼。原本我是使用的eclipse軟件進行部署,也比較簡單;
但是我遇到了一個怎么也解決不了的問題,沒有報任何錯誤,但是tomcat怎么也啟動不起來??偸菆?code>encountered problem這樣的提示問題。
我不部署任何項目,直接啟動本機的tomcat,是能夠直接跳轉訪問到tomcat的管理界面,但是在eclipse一直啟動不起來;我搜索的幾乎所有的結果,都是說它eclipse配置tomcat會進行重定向,需要把eclipse配置的tomcat的server.xml里的<Context></Context>標簽的內(nèi)容注釋掉或刪除掉,才能夠不會報錯。
但是這邊又有一個問題,刪除之后確實能夠啟動tomcat了,我導入的javaweb項目是通過訪問index.jsp進行訪問項目,發(fā)現(xiàn)該配置的都配置了,硬是沒有編譯成功,沒有把主入口編譯出來,無法訪問到我需要訪問的項目。
ps:我有在第一次配置成功,可以訪問,但是項目出現(xiàn)問題;第二次配置的時候就出現(xiàn)上面的情況
折磨了我很久,于是我打算使用idea進行配置javaweb項目;也折騰了很久,為了以后方便,把我這次使用idea配置javaweb的過程記錄下來。
準備工作
IDEA
安裝IDEA,這個是就不需要多說了,不過雖然版本一般不會影響配置javaweb,但是防止版本不一致部分操作可能不同,還是發(fā)出我使用的IDEA版本
我的IDEA版本為: IDEA 2021.1.3
tomcat
首先,你本機一定需要下載一個tomcat,版本無所謂都是可以的。然后記住你下載tomcat存放到本機的位置。如我的在D盤
D:\software\tomcat\apache-tomcat-9.0.54


jdk
同樣,你的本機需要下載安裝jdk,這邊有一點很重要,配置javaweb,里面的jdk版本一定要跟著javaweb項目來。
我的jdk路徑同樣也是在D盤
D:\software\jdk

javaweb結構
以下貼出我導入前的javaweb項目結構
以我的項目名稱:HRMS

然后進行導入到idea
點擊 File--->Open

找到你的本地的javaweb項目,點擊OK即可

然后它提示我是否打開新窗口打開項目,選擇是New Window

導入后的項目結構



這些就是我項目中的結構了,但是我們很多文件都不需要看,
配置文件你最主要的是需要看WebContent--->WEB-INF文件
配置文件你最主要的是需要看WebContent--->WEB-INF文件
配置文件你最主要的是需要看WebContent--->WEB-INF文件
重要的事情說三遍!!!
此外,還有一個很重要的事情,萬一,你的IDEA沒有識別出你的javaweb項目的src是java代碼
需要標注src文件夾為資源文件(即src文件夾不是藍色)對src文件夾鼠標右鍵----》Mark Directory as ----》 Rources Root

配置JavaWeb項目
接下來是重頭
project Structure…
點擊File ---> project Structure...
打開項目配置界面
界面為

project Structure… --> Project
里面的Project界面需要配置兩個,一個是Project SDK,一個是Project language level
SDK即jdk, language level即jdk版本
導入本機配置好的jdk(這里不額外教學idea配置jdk,詳情百度,如果沒有的話)
選擇對應javaweb項目的jdk版本
一般大部分javaweb項目版本都是jdk1.8,和我的一樣也是OK的
我的為:

即SDK 1.8 version
language level 8 -Lambdas,type annotations etc.
另外ps:一般情況,Project complier output這里都需要進行配置打包生成位置
project Structure… --> Libraries
可以看到我這邊并沒有直接配置Modules,而是先Libraries

這個是java代碼需要的依賴包,如果你有寫過Maven項目或者說是Springboot項目,和在pom.xml引入依賴的原理是一樣的。
初始為上圖,什么內(nèi)容都沒有,為空;
然后我們點擊加號+
選擇java引入

在我的項目中,只有在webContent--->WEB-INF ---> lib文件夾下才有對應的jar包,所以我只需要引入這個地方的jar包即可。如果你的項目中有別的文件夾也有jar包,需要一并引入

點擊OK,然后會提示

Library 'lib' will be added to the selected modules
意思是是否將引入的這個包引入到modules模塊,也就是我跳過的地方
引入modules,也意味著,它是會引入到整個項目的配置,
我們選中,然后點擊OK即可

project Structure… --> Modules
這個時候我們再回過頭看看modules界面
拋開剛剛引入的lib
剩下的為初始界面

同樣,我們來看看Modules--->Sources

以及Modules--->Paths

Sources里代表的是我們整個項目的資源情況
Paths 進行配置導包的操作,一般情況下,javaweb導包是會生成war,tomcat進行啟動。
這里Modules我們什么都不需要操作,只給大家說明作用。
project Structure… --> Facets
Facets
初始界面為:

初始是空白的狀態(tài),什么都沒有。它的作用就一個:讓IDEA知道這個項目是什么項目,知道需要怎么去運行這個項目,配置框架
我們這個項目是javaweb項目,自然而然需要配置為web框架
點擊加號+,選擇web

同樣也會提示一個提示

Web facet will be added to selected module
它的意思是是否將web框架添加到選擇的module模塊
同樣我們,選中項目module,選擇OK
接下來一步非常重要接下來一步非常重要接下來一步非常重要

假如你現(xiàn)在點擊Apply應用配置的話,你會發(fā)現(xiàn),項目會多出一個文件夾web

但是只到這里的話,該操作默認給你創(chuàng)建一個新的web項目,而不是將你導入的javaweb項目標記為web項目,所以我們需要更改配置。
將Facets ---> Type
選中,點擊畫筆,修改

將該配置映射到我們導入的javaweb項目的web.xml

即選擇自己導入項目的WebContent -- > WEB-INF ---> web.xml文件
點擊OK

繼續(xù)點擊OK
把Facets --> Web Resource Directory
選中,點擊畫筆,進行修改

將其選擇自己項目中的WebContent 文件夾,點擊OK

繼續(xù)點擊OK

點擊Apply應用即可
這里,它提示'Web' Facet resources are not included in any artifacts
也就是進入到我們的下一個配置Artifacts
project Structure… --> Artifacts
打開Artifacts
初始為

也是空白,我們同樣點擊加號+
然后選擇Web Application:Exploded --> From Modules

同樣彈窗提示

提示select modules will be included in the created artifact with all dependencies
意思是是否將選擇的模塊包含在創(chuàng)建的組件(artifact)中,并包含所有依賴項
我們也是選中module點擊OK

以上我們的javaweb項目的配置都ok了,不要忘記點擊Apply進行應用配置!!!不要忘記點擊Apply進行應用配置!!!不要忘記點擊Apply進行應用配置!!!
還有一個地方很重要,
在Artifact的進行配置需要打成war包的各種
那么你首先需要在該界面的Type是Web Application Exploded下進行配置排查完錯誤之后
把這里的Type從Web Application Exploded改成Web Application Archive
配置tomcat
接下來我們配置最后一步,配置tomcat

點擊Add Configuration添加配置
出現(xiàn)界面如下

然后我們點擊加號+
找到tomcat,
選擇local 本機

然后界面為:

一般情況下,你如果沒有配置過tomcatApplication server一欄是空的,我們需要點擊右邊的Configure...進行找到我們下載到本地的tomcat

找到tomcat目錄

以下截圖為配置好之后的tomcat

這里之后一共需要注意四點

Application server: 配置本機tomcatURL: 運行項目的主urlHTTP port:運行項目的端口Warning:No artifacts marked for deployment:提示需要將運行項目的artifact進行配置
上述我們已經(jīng)配置完成了,可以點右邊的Fix自動添加
也可以點Deployment手動添加


最后同樣也不要忘記Apply應用
大部分項目到這里已經(jīng)可以直接運行了,點擊三角運行即可

打包為War包
如果你需要將javaweb項目打包,那么你一定需要在配置界面
在Artifact的進行配置
把這里的Type從Web Application Exploded改成Web Application Archive

為了防止緩存等問題,在打包前最好清除一下緩存
點擊Build -- > Build Artifact

然后點擊Clean

清除完成后,點擊Build

最后在配置的輸出路徑能夠找到自己的war包

以上大部分的javaweb項目都可以執(zhí)行成功,如果不行,請確認是否排查完錯誤,并且按照我的步驟一步步走下來。
當然,我的項目還不行,出來了各種問題,于是下面我來講一下我的解決過程
遇到問題處理
我遇到的問題不代表全部解決方案,畢竟代碼這種東西總會出來各種稀奇古怪的問題。有問題不是我這邊總結發(fā)的可以評論出來,如果我知道會更新文章出來
缺失jar依賴
這種情況下,就需要引入對應的jar包
如果是常用的jar我推薦一個maven庫,直接從里面下載jar進行引入,如果我給的maven庫沒有對應的jar包下載,那么你需要另外找?guī)爝M行下載
除了上述常用的jar包出現(xiàn)之外,我還遇到如下問題

java: 程序包javax.servlet不存在
這個我通過查找百度,實際上是tomcat的依賴jar包,只需要引入本地的tomcat的servlet-api.jar包即可
同樣打開Project Structure配置,打開Lbraries界面
點擊右邊已經(jīng)引入的加號,繼續(xù)引入

找到tomcat的依賴包servlet-api.jar,
注意我的本地的對應依賴包路徑為
D:\software\tomcat\apache-tomcat-9.0.54\lib\servlet-api.jar

同樣不要忘記Apply應用
此外,我還遇到一個

該jar包同樣通過百度查找也是tomcat的依賴,需要引入tomcat的jasper.jar
步驟和上面相同

未找到jar對應方法
另外,如果遇到引入的jar沒有問題,但是對應的方法爆紅,那么很大可能是由于jar版本不兼容,
這種情況,我通過查找百度得知我遇到的那個jar,高于多少多少版本的對應爆紅的方法被刪掉了,然后我一看實際引入的對應jar,確實高出了不少版本,然后我把對應的依賴換成低版本就不報錯了。
對應如何替換jar,和配置的Libraries界面操作一樣!
項目實際啟動結果
以下截圖為我項目實際配置好之后啟動的截圖,(只發(fā)出一個入口界面)

結語
以上為我使用IDEA 導入別人的javaweb項目進行部署
也走了很多彎路,發(fā)出來除了作記錄,也幫助需要的人進行配置。
再后面如果更新,很大是會在遇到的配置的問題上進行更新,以上。
到此這篇關于IDEA 如何導入別人的javaweb項目進行部署的文章就介紹到這了,更多相關idea導入javaweb項目部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java入門絆腳石之Override和Overload的區(qū)別詳解
重寫是子類對父類的允許訪問的方法的實現(xiàn)過程進行重新編寫, 返回值和形參都不能改變。即外殼不變,核心重寫!重寫的好處在于子類可以根據(jù)需要,定義特定于自己的行為。重載是在一個類里面,方法名字相同,而參數(shù)不同。返回類型可以相同也可以不同2021-10-10
詳解Java集合類之HashTable,Properties篇
這篇文章主要為大家詳細介紹一下Java集合類中HashTable和Properties的用法,文中的示例代碼講解詳細,對我們學習Java有一定幫助,感興趣的可以了解一下2022-07-07

