IDEA中WEB項(xiàng)目結(jié)構(gòu)和Artifacts設(shè)置方式
公司的WEB項(xiàng)目結(jié)構(gòu)一直比較隨意,沒有統(tǒng)一的規(guī)范,新增項(xiàng)目也是直接用舊的項(xiàng)目文件夾拷貝過去修改,時(shí)間長(zhǎng)了以后項(xiàng)目文件結(jié)構(gòu)混亂,研究了半天終于找到了(可能)正確的目錄結(jié)構(gòu)設(shè)置,能夠直接輸出正確結(jié)構(gòu)的Artifacts可直接部署。
I.開發(fā)工具
IDEA
II.項(xiàng)目結(jié)構(gòu)
【更新】maven推薦目錄結(jié)構(gòu):
|-->pom.xml ---->pom文件
|-->src ---->源碼包:
|-->main ---->源碼:
|-->java ---->java源碼
|-->resources ---->配置文件
|-->webapp ---->app應(yīng)用文件
|-->WEB-INF
|-->web.xml
|-->index.jsp
|-->test ---->測(cè)試源碼:
|-->java ---->java測(cè)試源碼
|-->resources ---->測(cè)試配置文件
我的目錄結(jié)構(gòu),就這樣吧懶得改了。。
項(xiàng)目文件夾
├─lib
├─src
│ └─main
│ ├─java
│ └─resources
└─web
└─WEB-INF
web.xml
III.設(shè)置文件夾的類型
打開IDEA頂部菜單欄 - File - Project Structure
設(shè)置Project
Project compiler output: 標(biāo)識(shí)的是整個(gè)項(xiàng)目的生產(chǎn)環(huán)境資源輸出目錄,正確設(shè)置以后會(huì)包括編譯后的class文件、lib文件、前端文件等。
輸出目錄文件夾名字隨意:項(xiàng)目文件夾\target\。

設(shè)置Modules
Sources
src目錄為Sources,sources目錄為Resources(如果有)

Paths
Compiler output選擇lnherit project compile output path(通常是默認(rèn)選中)

設(shè)置Libraries
選擇“+” - Java - 選擇lib文件夾即可

設(shè)置Facets
src\main\web\WEB-INF\web.xml如果不存在,需要手動(dòng)創(chuàng)建。
選擇“+” - Web - 雙擊選擇當(dāng)前項(xiàng)目

- Deployment Descriptors選擇
src\main\web\WEB-INF\web.xml文件 - Web Resource Directories選擇
src\main\web目錄

項(xiàng)目中的前端文件:HTML、CSS、JS、JSP等放在WEB目錄下即可。
設(shè)置Artifacts
根據(jù)各自項(xiàng)目部署方式自行選擇
選擇“+” - Web Application: Exploded - From Modules… - 選擇當(dāng)前項(xiàng)目即可。

- Name: 指定打包輸出目錄的名稱。
- Type: 指定打包方式,我們公司使用的是Web Application: Exploded。
- Output directory: 會(huì)自動(dòng)指向到
target\artifacts下,可以自行設(shè)置項(xiàng)目打包輸出目錄。
IV.打包發(fā)布
把java文件、前端文件都準(zhǔn)備好了以后,選擇IDEA頂部工具欄 - Build - Build Artifacts…,指定的輸出目錄下會(huì)生成項(xiàng)目文件,包含前端文件、包含lib和class類文件的WEB-INF。
直接用這個(gè) _war_exploded 文件夾部署到服務(wù)器上即可。

遇到的坑
lib包在WEB-INF下,一次部署項(xiàng)目時(shí)有個(gè)jar包識(shí)別不到,部署失敗,把lib文件夾拷貝一份放到WEB-INF上一級(jí)目錄,就是項(xiàng)目根目錄下才解決了問題部署成功。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用pdfbox實(shí)現(xiàn)給pdf文件加圖片水印
有時(shí)候需要給pdf加水印,市面上工具都是收費(fèi)的要會(huì)員,還是自食其力吧;嘗試過 spire.pdf.free 那個(gè)超過10頁(yè)就不行了!所以本文還是使用了pdfbox,感興趣的可以了解一下2022-11-11
Spring中@Validated和@Valid區(qū)別淺析
mybatis使用foreach語句實(shí)現(xiàn)IN查詢(三種)
Java實(shí)現(xiàn)遞歸刪除菜單和目錄及目錄下所有文件
Java使用Redis實(shí)現(xiàn)微博熱搜功能

