如何用Eclipse創(chuàng)建一個Maven項目_第1頁
如何用Eclipse創(chuàng)建一個Maven項目_第2頁
如何用Eclipse創(chuàng)建一個Maven項目_第3頁
如何用Eclipse創(chuàng)建一個Maven項目_第4頁
如何用Eclipse創(chuàng)建一個Maven項目_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

如何用Eclipse創(chuàng)建一個Maven項目

如何用Eclipse創(chuàng)立一個Maven工程

1.什么是Maven

ApacheMaven是一個工程管理和整合工具。基于項目對象模型〔POM〕的概念,通過一個中央信息管理模塊,Maven能夠管理工程的構建、報告和文檔。

Maven項目結構和內容被定義在一個xml文件中pom.xml,是ProjectObjectModel(POM)的簡稱,此文件是整個Maven系統(tǒng)的根底組件。

2.為什么要用Maven

當我們創(chuàng)立一個Maven工程后,就不需要再自己去導入各種jar包了,將要導入的jar包依賴信息配置在pom.xml中,Maven工程會根據具體的配置自動地在編譯、測試和運行的時候,從本地倉庫中導入相應的各種依賴。

這樣做有兩個最大的好處,一個是工程的依賴被統(tǒng)一管理,不容易出現(xiàn)依賴沖突〔比方說jar包引入的版本沖突〕;另一個就是工程的體積變小了,畢竟一個稍微大些的工程光是引入的jar包就占了相當多的體積,而Maven工程只需要一個pom.xml文件就搞定了

約定優(yōu)于配置

Maven使用約定而不是配置,開發(fā)者不需要再關懷每一個配置細節(jié)。當創(chuàng)立Maven項目時,Maven會創(chuàng)立默認的項目結構。開發(fā)者只需要合理的放置文件,并在pom.xml中添加工程相關的依賴。

Maven工程規(guī)定了源碼文件、資源文件、測試文件、輸出文件等的默認配置,簡單的說就是把這些文件規(guī)定放在對應的路徑下方便管理,如下表所示,若${basedir}表示項目根目錄:

工程項目的路徑寄存的文件類型${basedir}/src/main/java工程源碼${basedir}/src/main/resources資源文件,比方.properties文件${basedir}/src/main/webappweb工程相關資源文件,比方web.xml${basedir}/src/test/java測試用的源碼${basedir}/src/test/resources測試用的資源文件${basedir}/target/classes編譯后的文件${basedir}/target/test-classes編譯后用于測試的文件

如果是用Eclipse的Maven插件生成的Maven工程,只會自動生成src/main/resources和target/classes、target/test-classes,需要自己手動添加其它的目錄,并且指定工程的source以及編譯后的輸出目錄

3.Maven的安裝與設置環(huán)境變量

想要創(chuàng)立一個Maven工程需要先安裝Maven,并且設置好環(huán)境變量

Maven下載

設置環(huán)境變量

新建變量MAVEN_HOME,值為Maven的目錄X:\XXX\apache-maven-XXX

將%MAVEN_HOME%\bin添加到Path變量下

運行CMD,輸入mvn-v后可以看到Maven的版本信息等那么表示安裝成功

4.創(chuàng)立Maven工程和依賴

4.1創(chuàng)立Maven工程有兩種方式,如下

第一種創(chuàng)立方式:使用命令行手動創(chuàng)立

mvnarchetype:generate-DgroupId=com.lewis.seckill-DartifactId=seckill-Dpackage=com.lewis.seckill-Dversion=1.0-SNAPSHOT-DarchetypeArtifactId=maven-archetype-webapp

1

2

命令行執(zhí)行后會創(chuàng)立一個maven-archetype-webapp骨架的Maven工程,其中groupId是工程組織唯一的標識符,實際對應JAVA的包的結構;artifactId是工程的唯一的標識符,實際對應工程的名稱;package一般是groupId+artifactId,是自動生成的,可以修改

第二種創(chuàng)立方式:借助IDE工具的Maven插件來創(chuàng)立工程

筆者用的是Eclipse,所以這里只介紹Eclipse怎么用插件生成一個Maven工程

Eclipse安裝Maven插件

不知道怎么Maven插件的請參考該博文,推薦使用link方式手工安裝的方式

如果是手工安裝Maven插件的,可能會短少pom.xml圖形化編輯工具,請另外添加進去,具體情況請參考該博文

已經安裝了Maven插件的請走下一個步驟

File→New→Other...→MavenProject→Next,進入如下界面

點擊Next,選擇要構建的骨架maven-archetype-webapp,如圖所示

點擊Next,填寫groupId=com.lewis.seckill,DartifactId=seckill,package=com.lewis.seckill〔根據實際情況填寫〕,然后Finish

將Maven工程轉變?yōu)镋clipse支持的Web工程

此時構建好的只是一個Maven工程,需要將其轉變?yōu)镋clipse支持的Web工程,這樣才能夠直接在Eclipse中部署到Tomcat上進行調試。具體情況請參考該博文

4.2修改pom.xml文件

當創(chuàng)立完Maven工程后會在根目錄下有一個pom.xml文件,Maven工程通過pom.xml進行工程依賴的管理,如果沒有該xml文件,Eclipse不會將該工程當作一個Maven工程

添加工程需要的jar包依賴

xsi:schemaLocation="/POM/4.0.0/maven-v4_0_0.xsd">

4.0.0

com.lewis

seckill

war

0.0.1-SNAPSHOT

seckillMavenWebapp

junit

junit

4.11

test

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

在這個pom.xml里,會自動添加了Junit的依賴,不過有可能是3.X版本的,我們將其版本改為4.11的,因為舊版本的Junit不支持注解測試。

工程需要什么依賴,我們就到該文件下添加相對應的配置信息,比方我們要使用MySQL,就這pom.xml文件的dependencies標簽里引入如下配置

mysql

mysql-connector-java

5.1.35

runtime

1

2

3

4

5

6

7

每次更新完pom.xml文件并保留后,Maven工程會自動檢測下載新的依賴。這里的groupId+artifactId唯一定位了依賴倉庫里的MySQL的驅動jar包,version表示其版本,scope表示該依賴的范圍。在Maven工程中,編譯、測試和運行使用的是不同的classpath,runtime表示該工程在編譯時不導入該依賴,而在測試和運行工程時那么導入。

則如何查找jar包坐標和版本信息呢?請參考該博文

更新依賴時可能存在的問題

由于Maven默認會前往中央倉庫下載依賴,下載的速度可能會非常慢,甚至連接不上,一般我們會設置成阿里云的鏡像,下載速度會快很多,具體操作請參考該博文

在Eclipse上運行Maven命令

在安裝了Maven插件之后,已經不需要用cmd來輸入命令,可以直接在Eclipse中直接輸入指令。在cmd中每個命令都要加上mvn前綴,而在Eclipse中那么不需要,一般常用的指令有clean、compile、install、package等,一般都會在執(zhí)行命令前先執(zhí)行clean去除編譯后的文件

右鍵點擊Maven工程,執(zhí)行runas里的命令,也可以自己輸入其他的命令,具體操作請參考該博文

執(zhí)行Maven命令可能發(fā)生的問題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論