电竞比分网-中国电竞赛事及体育赛事平台

分享

intellij idea部署web項(xiàng)目時(shí)的位置(Tomcat)

 quasiceo 2018-09-21

在idea中運(yùn)行tomcat,把項(xiàng)目部署運(yùn)行起來(lái),然后我去tomcat目錄下去看,找不到我部署的項(xiàng)目 那我的項(xiàng)目是怎么運(yùn)行起來(lái)的?

說(shuō)明一下:這里是使用tomcat 部署成war exploded 而不是war包。war exploded模式是直接把文件夾、jsp頁(yè)面 、classes等等移到Tomcat 部署文件夾里面,進(jìn)行加載部署。因此這種方式支持熱部署,一般在開(kāi)發(fā)的時(shí)候也是用這種方式。在平時(shí)開(kāi)發(fā)的時(shí)候,使用熱部署的話,應(yīng)該對(duì)Tomcat進(jìn)行相應(yīng)的設(shè)置,這樣的話修改的jsp界面什么的東西才可以及時(shí)的顯示出來(lái)。


如上,將兩處都修改成Update resources即可。

webapps下面文件夾都翻了一遍,都沒(méi)有發(fā)現(xiàn)部署的項(xiàng)目。


去work文件夾下也看了一遍,是空的。


后來(lái)發(fā)現(xiàn),在idea中配置的tomcat,在運(yùn)行時(shí)idea不會(huì)把項(xiàng)目放到自己的webapps路徑下,而是復(fù)制三份文件到 ${user.home}/.IntelliJIdea/system/tomcat 目錄下的各自項(xiàng)目。

我們進(jìn)入該目錄,看到如下(名稱是通過(guò)我們的項(xiàng)目名轉(zhuǎn)化而來(lái)):


也就是說(shuō)每個(gè)項(xiàng)目都有屬于自己的一份tomcat配置,互不干擾。

我們進(jìn)入其中一個(gè)項(xiàng)目下,看到如下:(在自己的tomcat安裝目錄下是看不到日志的,日志在這里,還有一些配置文件)


每個(gè)項(xiàng)目的配置文件夾中有一個(gè) /conf/Catalina/localhost/ROOT.xml 文件,內(nèi)容如下:


其中,path是指在訪問(wèn)此項(xiàng)目時(shí),是否需要添加額外的路徑,如果為空,則直接使用域名或者ip就可以訪問(wèn)到該項(xiàng)目:127.0.0.1。這個(gè)值在ieda中的Run/Debug Configurations中可以配置:(即Application context)




如果現(xiàn)在我在Application context加上:/springSecurityDemo


Server這邊會(huì)自動(dòng)加入:springSecurityDemo/


這時(shí)候,我們運(yùn)行tomcat之后,在conf/Catalina/localhost沒(méi)有發(fā)現(xiàn)ROOT.xml,而是springSecurityDemo.xml文件,內(nèi)容如下:


這時(shí)候項(xiàng)目的訪問(wèn)路徑是:http://localhost:8145/springSecurityDemo/

docBase是指要運(yùn)行的項(xiàng)目的部署位置,/myProject/springSecurityDemo 就是我的項(xiàng)目源代碼的位置,build是由gradle構(gòu)建后生成的,gradle build完成之后生成的項(xiàng)目,結(jié)構(gòu)

如下:


而idea啟動(dòng)tomcat的命令在這里:


整個(gè)項(xiàng)目運(yùn)行過(guò)程是:首先gradle build項(xiàng)目,將構(gòu)建結(jié)果寫(xiě)到項(xiàng)目的build目錄下,然后idea復(fù)制一份tomcat的conf、logs和work文件夾到${user.home}/.IntelliJIdea/system/tomcat 中,之后啟動(dòng)tomcat安裝目錄下的catalina.sh文件,tomcat讀取配置文件,找到項(xiàng)目位置,然后就運(yùn)行起來(lái)了。

-------------------------------------------------------------------------------------

如果是使用tomcat 部署成是war包。那么會(huì)不會(huì)就能在自己安裝的tomcat中找到呢?

剛開(kāi)始我將項(xiàng)目改為war部署的方式,但是運(yùn)行之后tomcat中始終沒(méi)有項(xiàng)目的文件。后來(lái)發(fā)現(xiàn)如果將當(dāng)前的Application context設(shè)置為’/’,那么

tomcat也不會(huì)將項(xiàng)目部署到webapps中,因?yàn)檫@個(gè)相當(dāng)于你項(xiàng)目的根路徑。后來(lái)經(jīng)過(guò)實(shí)踐,發(fā)現(xiàn)這個(gè)Application context就是你項(xiàng)目在webapps路徑下項(xiàng)目的根目錄名。  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多