1、預備工作(下載並配置Maven、配置Eclipse):
1 |
1.1 下載地址:http: //maven.apache.org/download.html |
2 |
1.2 將下載的文件解壓到本地,並在環境變量中加入Maven的bin目錄路徑。在“命令提示符”窗口中運行
mvn -version 輸出Maven版本信息,表明安裝成功。 |
3 |
1.3 打開
%Maven根目錄%/conf/settings.xml 文件,找到<localRepository>配置標籤,修改Maven本地倉庫(存放Jar包)的位置(默認爲 "用戶主目錄/.m2/repository" ),eg.<localRepository>F:/Dev/DevTools/repository/</localRepository>。 |
4 |
1.4 配置Eclipse: |
5 |
Window
--> Java --> Build Path --> Classpath Variables --> New, |
6 |
Name:
M2_REPO |
7 |
Path:
修改的Mave本地倉庫目錄(eg.F:/Dev/DevTools/repository/) |
-
使用Maven創建項目:
打開CMD,進入要創建項目的文件夾目錄,運行命令:
a)建立普通Java工程:
mvn archetype:create -DgroupId=com.zuora.squadG.william -DartifactId=XXXTest
b)建立Web工程:
mvn archetype:create -DgroupId=com.zuora.squadG.william -DartifactId=XXXTest -DarchetypeArtifactId=maven-archetype-webapp
(參數:groupId後面是包名,artifactId後面是項目名稱)
運行結果:在該目錄下生成XXXTest項目,其中包含pom.xml配置文件。 -
導入有兩種方法這裏分步講解:
1) 使用MyEclipse的普通工程導入,步驟如下:
1> 先打開dos,在工程根目錄下(mywebapp)運行: mvn eclipse:eclipse---運行完後會發現在工程目錄下多出了兩個文件.classpath和.project,這是eclipse的工程文件,當然myeclipse也識別
2> 在MyEclipse中使用導入功能,選擇File-->Import...-->Existing Projects into workspace,選擇工程目錄,導入即可
3> 關聯Maven,導入後的工程只是一個普通java的工程,並不會與maven插件相關連,此時在工程上點擊右鍵-->Maven4MyEclipse-->Enable Dependency Management,這樣,這個工程就與Maven插件關聯了(關聯後工程根節點左上角上會有一個M的標識)。
2)使用MyEclipse中的Maven工程導入,步驟如下:
1> 在MyEclipse中使用導入功能,選擇File-->Import...-->Existing Maven Projects(這裏不同),選擇工程目錄,導入即可。---這裏導入進,MyEclipse可能會聯網更新索引,很慢,我們可以取消(在Progress面板中點那個大紅框),這時工程導進來了,但是沒有執行該有的操作,比如maven的dependcy檢查等,此時進行一下第2步操作。
2> 更新一下工程配置,右鍵工程-->Maven4MyEclipse-->Update Project Configuration
4. 補全工程的目錄結構,第1步中生成的maven工程目錄是不全的,比如我們的java代碼,我們的測試目錄等,現手動創建,和補全爲如下:
- mywebapp
- +---pom.xml
- +---src
- +---main
- +---resources
- +---java <<添加
- +---webapp
- +---index.jsp
- +---WEB-INF
- +---web.xml
- +---test <<添加
- +---resources <<添加
- +---java <<添加
- +---target <<eclipse自動添加
- +---classes <<eclipse自動添加
- +---test-classes <<eclipse自動添加
截圖:
5. 增加MyEclipse的Web Project功能
到目前爲止,我們僅僅是把一個Maven的webapp導入到了MyEclipse中,然而在MyEclipse中,這還僅僅是一個Java普通的Maven工程,這一步我們就要爲其添加MyEclipse的web project特性。
選擇工程-->MyEclipse-->Project Capabilities-->Add Web Project Capabilites,彈出窗口中設置參數如下,再接下來的彈出窗口中選擇yes。這樣我們的工程就是web工程了(注意工程圖標有變化,而且MyEclipse自動依賴了JEE的包)。
6. 配置工程屬性,打開工程屬性面板---這一步很重要,都是些細節配置,缺一不可啊
1) Java Build Path
1> Source
添加src/main/java, src/test/java, src/test/resources爲source folder, 這裏就不需要詳述了吧,點"add folder"就行。
最小面的"default output folder"修改爲"mywebapp/src/main/webapp/WEB-INF/classes"---這點很重要
修改這些source folder的輸出目錄,其中main/java和main/resources輸出到default output folder, 而test/java和test/resources輸出到target/test-classes中,(如何修改---點擊各節點下的Output Folder, 再點右邊的edit按鈕就行了)最後設置結果如下:
2> Order And Export
爲了顯示好看,調整一下顯示順序,不細說了,很簡單,看下圖:
2)Java Compiler
注意到上面的圖片中,我的工程顯示jdk爲1.4,所以要修改成我們想要的版本,這裏就不詳述了,應該都會改。
3) Myeclipse-->Web這一個是用來修改設置工程的web特性的,如下圖:
好了,一個MyEclipse的Web Project + Maven webapp的工程就建好了。剩下的就是在myeclipse中開發和調試web最後用maven打包,當然一定要使用maven的依賴特性(把要依賴的jar包直接在pom.xml中加入,然後刷新工程就會自動導入)。
-
生成Eclipse項目:
3.1 CMD下進入項目目錄,運行命令:1
mvn eclipse:eclipse -Dwtpversion=
2.0
-DdownloadSources=
true
-DdownloadJavadocs=
true
-DjdkLevel=
1.6
2
(其中後三個參數爲可選參數指明是否下載Jar包的源碼,文檔以及指明jdk的版本)
3
運行結果: 在項目目錄下生成了Eclipse項目所需的各種配置文件(eg: .project .classpath .settiongs)
3.2 將項目導入Eclipse。
-
編輯pom.xml文件,爲項目添加新的依賴
4.1 編輯pom文件,添加新的dependency,保存。格式如下:
[xhtml] view plaincopy
1 |
<groupId>opensymphony</groupId> |
2 |
<artifactId>sitemesh</artifactId> |
3 |
<version> 2.2 . 1 </version> |
1 |
groupId是該類庫所屬的組織,作爲Maven本地倉庫下的文件目錄,包名結構映射成目錄結構,artifactId就是具體的類庫名稱了,是groupId的一個子目錄,version是版本號,每個版本都有一個單獨的目錄,裏面放置的就是具體的jar包。關於依賴的寫法,可以在http: //mvnrepository.com/
查詢 |
2 |
4.2 在控制檯分別執行: |
3 |
mvn
eclipse:clean |
4 |
mvn
eclipse:eclipse -Dwtpversion= 2.0 -DdownloadSources= true -DdownloadJavadocs= true -DjdkLevel= 1.6 |
5 |
4.3 在eclipse中刷新項目即可看到新的依賴項已經添加到eclipse項目中 |
PS:使用maven來管理現有Eclipse WEB項目的方法
1 |
前面已經介紹瞭如何新建一個maven項目並導入到eclipse中,但對於已有的wtp項目,其項目佈局是不符合maven方式的(eclipse下wtp項目web目錄在項目根目錄下WebContent,maven佈局是在src/main/webapp),這就不能直接通過eclipse:eclipse來生成eclipse的依賴 |
但可以通過改寫項目pom文件來指定源碼目錄或測試源碼目錄:
[xhtml] view plaincopy
1 |
<finalName>${pom.artifactId}</finalName> |
2 |
<directory>build</directory> |
3 |
4 |
<sourceDirectory>src</sourceDirectory> |
5 |
<outputDirectory>build/classes</outputDirectory> |
1 |
ps. 1 建立eclipse普通的web項目。 |
2 |
ps. 2 在項目根目錄下添加pom.xml文件。例如(主要是builder標籤內容): |
[xhtml] view plaincopy
<project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
01 |
xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd" > |
02 |
<modelVersion> 4.0 . 0 </modelVersion> |
03 |
<groupId>com.zuora.squadG.william</groupId> |
04 |
<artifactId>SitemeshTest2</artifactId> |
05 |
<packaging>war</packaging> |
06 |
<version> 1.0 -SNAPSHOT</version> |
07 |
<name>SitemeshTest2
Maven Webapp</name> |
08 |
<url>http: //maven.apache.org</url> |
09 |
<dependencies> |
10 |
<dependency> |
11 |
<groupId>junit</groupId> |
12 |
<artifactId>junit</artifactId> |
13 |
<version> 3.8 . 1 </version> |
14 |
<scope>test</scope> |
15 |
</dependency> |
16 |
<dependency> |
17 |
<groupId>opensymphony</groupId> |
18 |
<artifactId>sitemesh</artifactId> |
19 |
<version> 2.2 . 1 </version> |
20 |
</dependency> |
21 |
</dependencies> |
22 |
23 |
<build> |
24 |
<finalName>${pom.artifactId}</finalName> |
25 |
<directory>build</directory> |
26 |
27 |
<sourceDirectory>src</sourceDirectory> |
28 |
<outputDirectory>build/classes</outputDirectory> |
29 |
30 |
</build> |
1 |
ps. 3 在cmd中進入項目根目錄,運行命令(注意不需要mvn
eclipse:clean): |
2 |
mvn
eclipse:eclipse -Dwtpversion= 2.0 -DdownloadSources= true -DdownloadJavadocs= true -DjdkLevel= 1.6 |
3 |
ps. 4 在eclipse中刷新並重新編譯項目。 |
4 |
ps. 5 在項目根目錄的 ".setting" 文件夾下找到文件
org.eclipse.wst.common.component 並在其中<project-modules>便籤下添加: <wb-resource deploy-path= "/" source-path= "/WebContent" />
(如果已經存在 <wb-resource deploy-path= "/" source-path= "/src/main/webapp" />則覆蓋之)。 |
5 |
OK。但記得每次在使用mvn命令重新構建依賴關係時都要進行ps. 5 的操作,原因就是mvn命令默認生成的web內容路徑是 "/src/main/webapp" ,我現在還沒找到配置這一路徑的方法,等待高人指點,Thanks!! |