1.前言
? ? 雖說(shuō)Intellij IDEA已經(jīng)用了四個(gè)多月,里面大部分功能還是比較熟悉的闽撤,但是很多細(xì)節(jié)地方還是搞不清楚,這幾天公司另一個(gè)小組也換成了Intellij IDEA脯颜,幫他們遷移項(xiàng)目的時(shí)候哟旗,因?yàn)槭欠莔aven項(xiàng)目,遇到了很多問(wèn)題,自己又研究了一番闸餐,下面整理一下
2.項(xiàng)目配置(Project Structure)
2.1 Project?
project compliler output:配置的是項(xiàng)目中的默認(rèn)編譯輸出總目錄
里面英文也說(shuō)明了饱亮,每個(gè)模塊可以自己設(shè)置特殊的輸出目錄 ? 所以這個(gè)基本上沒(méi)用
2.2 Modules
項(xiàng)目的模塊,一個(gè)項(xiàng)目中可以有多個(gè)子項(xiàng)目舍沙,每個(gè)子項(xiàng)目相當(dāng)于一個(gè)模塊
一般我們項(xiàng)目只是單獨(dú)的一個(gè)近上,所以只需要配置一個(gè)模塊,我們可以給模塊添加框架
根據(jù)我們項(xiàng)目中的使用到東西拂铡,添加對(duì)應(yīng)的框架壹无,并在框架里面確定一下相關(guān)的配置文件(因?yàn)椴煌琁DE下,項(xiàng)目的文件結(jié)構(gòu)可能不同 所以導(dǎo)入的項(xiàng)目我們要注意一下配置)
模塊配置根目下 ?分為了三個(gè)標(biāo)簽:Sources—— Paths—— Depedencies
Sources標(biāo)簽下 主要顯示項(xiàng)目的目錄資源 ?那些是項(xiàng)目部署的時(shí)候需要的目錄 有顏色提示
(比如綠色是測(cè)試目錄 橘色是target的目錄 這些部署的時(shí)候都不需要 ?大紅色是我的項(xiàng)目下沒(méi)有的 藍(lán)色是真正需要部署)?
Paths標(biāo)簽下?
可以指定項(xiàng)目的編譯輸出目錄 也就是項(xiàng)目類(lèi) 和 測(cè)試類(lèi)的編譯輸出地址(替換掉了Project的默認(rèn)輸出地址)
Depedencies是項(xiàng)目的依賴(lài)
我們可以點(diǎn)擊右側(cè)的+號(hào) ?添加lib ?比如tomcat的lib ?默認(rèn)加進(jìn)來(lái)就是Provided?
(和maven的里面的jar依賴(lài)差不多)
Provided 也就是項(xiàng)目部署的時(shí)候是忽略的 只是再編譯項(xiàng)目的時(shí)候進(jìn)行使用
Compile 是跟隨著項(xiàng)目部署的 ?Test也是不部署的
2.3 Libraries
里面可以添加項(xiàng)目jar包 并且可以把多個(gè)jar放在一個(gè)組里面 ?類(lèi)似于jar包整理
這個(gè)下添加的jar 會(huì)在Depedencies中顯示(反之不可以)
2.4 Facts
項(xiàng)目的門(mén)面感帅,說(shuō)實(shí)話(huà)斗锭,真不知道這個(gè)是干嘛的,和modules差不多失球,主要是為了確認(rèn)一下吧
2.5 Artifacts
項(xiàng)目的打包部署設(shè)置岖是,這個(gè)是項(xiàng)目配置里面比較關(guān)鍵的地方
注意紅框的地方
第一個(gè)是我們需要添加項(xiàng)目的部署包 注意選擇是exploded的war包
第二個(gè)是項(xiàng)目的輸出目錄 非maven項(xiàng)目這個(gè)可以設(shè)置到任何地方?
( maven項(xiàng)目的需要特殊注意 這個(gè)后面再說(shuō))
第三個(gè)是輸出結(jié)構(gòu)(output layout) 參考圖中的幾個(gè)文件?
(maven項(xiàng)目如果不使用maven的打包編譯 ?注意圖中WEB-INF下的lib要有項(xiàng)目部署的jar)
3.非Maven項(xiàng)目的創(chuàng)建部署
創(chuàng)建File——New Project——Java——Web Application
(注意New Project里面不是選擇的web 而是java)
intellij中web項(xiàng)目 默認(rèn)網(wǎng)頁(yè)根目錄是web?
項(xiàng)目配置可參考2中的幾個(gè)地方 根據(jù)自己的需求自己修改
artifact中out directory 可以指定到任何地方 項(xiàng)目打包編譯到指定的目錄下 ?
在intellij中啟動(dòng)tomcat都會(huì)以對(duì)應(yīng)war包out directory的設(shè)置的目錄為工作空間
tomcat配置請(qǐng)參考http://my.oschina.net/u/140593/blog/177042#OSC_h1_2中的2-7
4.Maven項(xiàng)目的部署
在intellij中 maven項(xiàng)目還是可以按照maven的打包編譯 參考圖中的幾個(gè)生命周期 手動(dòng)去執(zhí)行
因?yàn)閙aven項(xiàng)目的約定 是項(xiàng)目打包編譯到 target目錄下 ?
所以我們?cè)?中配置都應(yīng)該去遵循maven的配置約定進(jìn)行修改
這樣我們的項(xiàng)目在文件修改或者熱部署的時(shí)候 ?intellij的編譯才能和maven項(xiàng)目保持一致?
(如果是在intellij中創(chuàng)建maven項(xiàng)目 那個(gè)intellij會(huì)給你配置好所有的配置 ?
基本不用修改 我們可以創(chuàng)建一個(gè)springmvc的例子進(jìn)行參考)
需要注意的地方是:
maven項(xiàng)目 ?artifact中out directory 的目錄名?
一定要和pom文件中build的finalName一致
另外pom文件中 要配置war
比如pom中配置的項(xiàng)目bulidfinalName叫做ROOT
那么我們的out directory為 ?E:\項(xiàng)目積累\test1\target\ROOT?
通過(guò)maven編譯以及打包項(xiàng)目后
在服務(wù)器的配置中,可以去掉下圖紅色區(qū)域的兩個(gè)選項(xiàng)实苞,避免每次啟動(dòng)時(shí)都重新編譯和打包?
5.總結(jié)
? ? 本文基本總結(jié)了intellij中web項(xiàng)目部署的問(wèn)題豺撑,以及如何去配置,因?yàn)榫W(wǎng)上也沒(méi)有很具體的說(shuō)明硬梁,所以這些都是自己摸索出來(lái)的前硫,有不對(duì)的地方歡迎大家指正
本文來(lái)源于:https://my.oschina.net/lujianing/blog/186737?p=1#OSC_h2_1