Idea匯入專案及部署至Tomcat(從Eclipse到Idea的華麗轉身)
長時間使用Eclipse或者MyEclipse慢慢的就會發現越來越蛋疼。過於簡單粗暴的介面,過多而無用的外掛……廢話不多說,進入正題。
首先需要明確一個問題:在傳統的Eclipse中的workspace和project相信大家都有一定的瞭解。但是在Idea中沒有了workspace,轉而出現了project和module。相信聰明的觀眾老爺,能猜出來。沒錯,在Idea中project就相當於Eclipse中的workspace,module就相當於Eclipse中的project。
環境說明
筆者使用的IntelliJ IDEA版本是:2017.2.4
匯入專案
在Idea中建立一個空的project(相當於在Eclipse中建立了一個workspace)
- File -> New -> Project -> Empty Project,然後選擇下一步
- 輸入Project的名字,並選擇Project的位置,然後點選Finish
- 會彈窗提示在新視窗開啟還是在當前視窗開啟,這裡隨意選擇。筆者選擇在當前視窗開啟。
配置環境JDK
- 開啟專案結構 快捷鍵:
Ctrl + Shift + Alt + S
- 選擇Project
- 在Project SDK 選擇New, 選一個本地的JDK_HOME 目錄
匯入傳統結構的專案
- 開啟專案結構 快捷鍵:
Ctrl + Shift + Alt + S
- 匯入Eclipse建立的Web專案
- 選擇Modules,點選
+
,我們這裡是匯入專案所以選擇Import Module
,如果需要新建一個專案可以選擇New Module
- 選擇專案所在磁碟的路徑, 因為專案是Eclipse建立的,所以我們選擇Eclipse這個選項, 一路 Next,最後一步選中我們匯入的專案,Finish 完成。
- 匯入一個專案之後會預設選擇這個模組, 例如本例子中的
Hello
(如果沒有可以開啟專案結構視窗,選擇Modules中的Hello模組即可), 在這個模組中有幾個選項卡,Sources, Paths, Dependencies 這幾個。
- Sources 選項卡, 我們可以看到
Hello
模組的專案結構,在這裡我們可以設定哪一個是原始碼檔案,哪一個是資原始檔夾,測試原始碼, 測試資原始檔等。
- Paths 選擇模組的輸出路徑
- Dependencies 這裡配置模組的依賴關係, 配置jdk,刪除不需要的依賴關係
匯入Maven專案
- 和匯入傳統專案類似,唯一不同的是 要選擇Maven選項,而不是Eclipse。在匯入時,要選擇pom.xml檔案的上級目錄,這一點有別於eclipse
部署專案到Tomcat
配置tomcat
- 點選工具欄的設定按鈕 -> Edit configurations
- Name 給tomcat配置一個名字
- Application server 右側 Configure 配置tomcat所有目錄
- Open browser 啟動專案後使用哪一個瀏覽器開啟,並且配置一個訪問的url,
- VM options 配置jvm引數,如果專案啟動報記憶體溢位,可以在這裡更改
- JRE tomcat 使用的jdk
- Tomcat Server Settings 配置tomcat埠
現在tomcat中還沒有部署任何 artifact 。接下來我們來建立artifact
配置artifact
現在工程中只有兩個模組,一個是從eclipse中匯入的專案(Hello),另一個是匯入的Maven專案(comtest)專案專案結構視窗中選擇Artifacts可以看到可以部署到tomcat中的artifact。
我們可以看到Artifacts中只有Maven的專案並沒有Eclipse匯入的專案?我們要部署那個沒有的專案怎麼辦呢? 因為Eclipse匯入的專案沒有新增web模組到專案中,如果Maven工程pom檔案沒有把打包方式設定成war
在Artifacts 中也會沒有。
接下來我們新增給Hello模組新增web。
注意新增完Web後會出現兩個路徑要根據自己專案的實際情況來更改。在Eclipse中預設的Deployment Root 的名字是WebRoot, 而在idea中名字叫web。
我們對應修改就行了。因為本例子中Hello專案是Eclipse中的匯入的,我們要改成WebRoot。
修改完路徑,我們可以直接新增到artifact,Fix -> Create Artifact 就可以了。
也可以在Artifacts 視窗新增,都是可以的
部署artifacts 到tomcat
如果在Tomcat要部署多個artifact ,要注意 Application context 的路徑不要有衝突。
如果以Debug模式啟動,要熱更新class和靜態資源的話,要在Server中設定On Update action
和 On frame deactivation
為 Update classes and resources
啟動Tomcat
兩個按鈕一個是正常啟動,一個是除錯啟動。到目前為止就可以了。。。。。。
最後多說幾句
在啟動的時候可能遇到編譯級別的問題。
Error:(16, 61) java: '<>' operator is not allowed for source level below 1.7
- 如果是Maven專案 需要在pom檔案中指定專案的編譯級別。編譯的輸出是按照pom構建專案的。需要注意專案資原始檔的拷貝
<build>
<finalName>test</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.hbm.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
- 如果專案中既有jdk6 和 jdk7 就要新增多個jdk,(新增方法上文中有提到),還要更改專案的編譯級別。
- 部署到Tomcat
還要更改Tomcat 的jdk版本, 如果部署的專案既用到jdk6 和jdk7 ,就要把Tomcat的jdk更改為7。