IntelliJ Idea釋出專案到tomcat的方法(包括髮布war)
前言
最近在學習tomcat serverlet的開發,使用的開發工具也是比較常用的IntelliJ Idea,tomcat9,serverlet。開發一個helloworld的test webapp,並在idea環境下編譯除錯都很簡單,但後面要面臨一個web app釋出的問題,即脫離idea環境單獨將web app整合到tomcat環境下上線使用。
正文
開始按照網上一些文章去做,並沒有完全成功,沒有將所有的class都打包到war中,執行時出現exception。最後自己在它們的基礎上找到了成功的方法,步驟很簡單,親測有效特此記錄一下。
釋出到tomcat的方法有兩種,以我本地的webapp和路徑為例:
方法1. 直接copy資料夾到webapps的目錄下
在Idea中選擇File——Project structure——Artifacts,然後如圖操作
一般情況下選中了from Modules只會有一個和工程名字一樣的可選,選中它既可新增成功。
然後在Build——Build Artifacts,然後選中剛新增的Module並build即可。
這樣最終會在project的目錄下生成一個同名的檔案目錄:
C:\Users\×××××\IdeaProjects\FirstServerlet\out\artifacts\FirstServerlet_war_exploded
而我們目錄FirstServerlet_war_exploded整個拷貝到tomcat的webapps目錄下,就可以成功的訪問我們自己webapp下的連結了。
直接localhost:8080/FirstServerlet_war_exploded這樣訪問,當然檔案目錄可以重新命名的,只要做到訪問的url中name一致就行。
方法2:打包war併發布
我個人覺得將整個專案打包成war釋出會更好,這個打包工作直接在idea環境下就可以完成。除此之外肯定還有別的方法,只是我不知道而已。
開始的步驟和方法1都是一樣的,File——Project structure——Artifacts,但是點選“+”號選擇的條目不同。
!!!這有一點要注意,必須要先新增方法1中的exploded條目,這裡才有exploaded選項,否則只有empty!!!
然後同樣的去build我們新增的這個artifacts即可。
這樣在目錄C:\Users\liujianfeng\IdeaProjects\FirstServerlet\out\artifacts\unnamed3下面就可以看到一個war包,把其copy到tomcat的webapps目錄下,就可以成功訪問了,訪問的url中的name也要和war包的名字保持一致。
小結
其實兩個方法很簡單,方法1是方法2的基礎。這個很容易理解,方法1就是添加了這個web專案的exploaded,編譯出來是一個沒有打包的資料夾,而方法2就是將這個資料夾新增到war包中而已。
截至到2018-9-28,此方法都有效可用。