1. 程式人生 > >IntelliJ Idea釋出專案到tomcat的方法(包括髮布war)

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,此方法都有效可用。