IntelliJ和tomcat中的目錄結構


IntelliJ和tomcat中的目錄結構
 
 
project和module:
1、通過 .idea 下的modules.xml文件進行modules的管理,定義了module對應的iml文件,定義了iml文件的filepath和fileurl,通過iml文件加載module,如果修改了iml文件的filepath和fileurl,則定位不到iml,無法正確加載module。
 

 

 
當創建project時,其實也就默認創建了一個parent module,一個project下可以包含多個module(childmodule),childmodule會在下一級的目錄中創建。
 
PhildeMacBook-Pro:IdeaProjects Phil$ ls
JavaWeb TestProject firstAngularJS weixin
PhildeMacBook-Pro:IdeaProjects Phil$ cd TestProject/
PhildeMacBook-Pro:TestProject Phil$ ls
ChildModule TestProject.iml out src web
 

 

 
.idea:一般是project的配置文件和配置信息,指定了artifact的位置,指定了項目中包含的modules(modules.xml文件);
out:則是打包成war的發布包artifact;war下面,一般包含一個index.jsp文件,WEB-INF目錄,WEB-INF目錄下包含web.xml配置文件、classes(編譯成.class的java類)和lib文件夾(其它依賴的jar包等);
src:是project的原始文件,一般項目的java文件等都需要放在此目錄下,可以在src目錄中創建package,放各種java class類;
web:相當於webroot目錄,是根據src生成.class二進制文件,是web application的主目錄,包括index.jsp,WEB-INF目錄,WEB-INF目錄下包含web.xml配置文件、classes(編譯成.class的二進制文件)和lib文件夾(其它依賴的jar包等);項目所需要的資源,比如jsp頁面,image等,都可以放在web目錄下。
.iml文件,module的對應文件;
External Libraries:主要包括tomcat和jdk的引用jar文件;
 
編譯發布的一般過程為:
1、make:將java文件編譯(compile)成.class二進制文件;
2、build成artifact:將class文件build成war包;
3、deploy:部署,選擇artifact部署發布到tomcat服務器中。
 
可以向一個project中添加多個子modules,這些module可以也是web application,可以同時進行make,bulid,同時deploy到tomcat中,只需要注意在tomcat中的相對位置區分開即可。如下所示:

 

 

 
 
tomcat可以通過相同的IP、端口,同時發布不同的web應用,效果如下:

 

 

 

關於output目錄:
IntelliJ在build成artifact(war)時,可以選擇output directory:
直接output到tomcat中,這樣當IntelliJ 關閉時,也可以直接訪問發布到tomcat中的web應用,例如:
/Users/Phil/Documents/DevOps/tomcat/apache-tomcat-9.0.0.M10/webapps/JavaWeb/out/artifacts/JavaWeb_war_exploded
如果這樣,則在tomcat的webapps目錄下,就可以生成web項目的文件夾,如下:
/Users/Phil/Documents/DevOps/tomcat/apache-tomcat-9.0.0.M10/webapps/JavaWeb/
 
默認是output到project所在工程下的out文件夾中,在tomcat的webapps下並不生成相關文件夾,而是tomcat重定向到此artifact。這樣也比較合理,畢竟開發機只是調試;實際部署時,還是需要將war遠程cp到生產服務器的tomcat中。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM