網頁

2015/12/21

在Eclipse建立Spring Web專案by Maven

這陣子開始研究Spring Framework怎麼使用,但一開始要匯入相關的jar檔就搞死我了。第一,不知道要匯入哪些jar檔,第二,官網上僅說建議使用Maven或Gradle來下載jar檔。問題就更大了,因為看了一下Maven的教學,好像也不是那麼容易理解。最後在同事的指導下,才發現如果只是單純使用Maven的套件管理功能似乎不難。

寫這篇文章時我對Maven仍非常的不了解,我只知道這樣做可以讓我快速有個Web專案可以玩Spring。請看這篇比較新的教學版本 - 在Eclipse使用Maven建立Spring MVC Web專案 2018




在Eclipse建立動態web專案(web app),並利用Maven下載Spring的jar檔步驟如下。

安裝Eclipse Maven plug-in。不過我用的Eclipse版本為Mars,已經內建Maven,所以不用另外下載。

首先建立一個新的一般動態網站專案,Eclipse工具列選擇 File -> New -> Dynamic Web Project

專案名稱Project Name在此範例命名為"MavenDemo",接著按Finish

完成後可在Eclipse左側的Project Explorer中看到建立好的專案。

因為要利用Maven下載Spring的jar檔,所以必須轉換成Maven專案。在專案上按滑鼠右鍵Configure -> Convert to Maven Project

接著直接按Next >到底即可,最後可以看到原本專案的目錄結構有點不太一樣,尤其是多了pom.xml檔案。點兩下開啟pom.xml

pom.xml開啟如下,然後點選下方的pom.xml標籤即可看到pom.xml的內容。

接著到Spring官網,選擇上方導覽列的Project

進入後接著選擇Spring Framework

將畫面往下拉一點可看到Quick Start

接著選擇要下載的Spring版本,選擇好後將下面<dependencies> ... </dependencies>的所有內容複製起來。

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.2.RELEASE</version>
    </dependency>
</dependencies>

接著將複製的內容貼到剛剛的pom.xml檔內,注意必須貼在<project> ... </project>內然後按ctrl+s存檔

一旦存檔後Maven便會替我們下載所需的jar檔,等個一分鐘,即可在專案目錄的Java Resource -> Libraries -> Maven Dependecies中看到Spring的jar檔都自動下載並匯入囉,如此就可以開始練習你的第一個Spring專案了。



注意Spring MVC是Spring的擴展,所以如果你要使用Spring MVC的話只要把maven dependency(就是剛貼到pom.xml的內容)改為Spring MVC的即可。Spring MVC的maven dependency在這裡,從點選你要的版本就有了

例如下面是Spring MVC 4.2.2的maven dependency,一樣貼在<dependencies> ... </dependencies>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.2.2.RELEASE</version>
</dependency>



上面介紹的是先產生一個動態網站專案後,再轉成Maven專案,下面則是介紹如何新建一個Maven專案並加入Spring的jar檔,結果大同小異,用哪個方法都行。

Eclipse工具列File -> New -> Others...開啟對話視窗。在Wizards欄位輸入"Maven Project"可以快速找到要建立的Maven專案。

點選[Maven Project]後按Next >,這邊基本上都不需要修改,只是我的預設工作路徑(default Workspace location)不知為何會跑到某個專案名稱下,若你也有碰到相同的問題就按右邊的Browse...,重新選擇你要的workspace資料夾然後按確定。

workspace的位置修改完成,接著按Next >

選擇Maven的Archetype,點選maven-archetype-webapp然後按Next >

(Maven的Archetype簡單說就是專案的template,不同的Archetype有不同的目錄結構,專案套用Archetype後會長出該Archetype定義的目錄及資料夾。除了內建的Archetype也可自訂Archetype(目前我只知道這樣但我還不會用:p))

輸入Group IdArtifact Id,就相當於Maven的套件及專案名稱。Artifact Id會變成此專案的名稱,範例中命名為SpringWebByMaven,命名完後按FinishMaven的Web專案就建立完成了。(Group Id和Artifact Id命名最後都會在pom.xml中。)

預設在Maven Dependencies目錄下會有個junit-3.8.1.jarJUnit是Java的單元測試工具),待會Spring的jar檔也會被新增在這個位置。

而那個自動產生的index.jsp因為格式很奇怪,可以刪掉重新建一個。

接下來開啟pom.xml,注意Maven專案建立預設會加入junit這個jar檔,因此已經有<dependencies> ... </dependencies>了。

所以到Spring官網只要複製<dependency> ... </dependency>的內容即可,然後貼到pom.xml並存檔。

存檔完Maven就開始幫你下載Spring的jar檔囉,完成後jar檔都在Maven Dependencies的目錄下。

建立好的專案會缺少src/main/javasrc/test/java兩個build path(這不曉得是不是Eclipse maven的bug?)。在專案上右鍵Build Path -> Configure Build Path... 開啟Properties視窗,在Java Build Path選擇Source標籤,可以看到少了兩個build path的目錄,一為src/main/java,另一為src/test/java

要解決此問題,切換到Java Build Path下的Order and Export標籤,此時可看到src/test/java (missing),將JRE System LibraryMaven Dependencies打勾,按Apply->OK即可修復,可參考這篇

好了,終於可以開始練習Spring了:D

如果不想用maven而想要手動下載Spring的jar檔,可到這裡下載

如果覺得文章有幫助的話還幫忙點個Google廣告,感恩。


沒有留言:

張貼留言