使用Eclipse构建Maven项目 (step-by-step)
轉(zhuǎn)自:?http://blog.csdn.net/qjyong/article/details/9098213
?Maven這個(gè)個(gè)項(xiàng)目管理和構(gòu)建自動(dòng)化工具,越來(lái)越多的開(kāi)發(fā)人員使用它來(lái)管理項(xiàng)目中的jar包。本文僅對(duì)Eclipse中如何安裝、配置和使用Maven進(jìn)行了介紹。完全step by step。
如果覺(jué)得本文對(duì)你有用,請(qǐng)移步到:http://download.csdn.net/detail/qjyong/5582071?下載PDF版,?http://download.csdn.net/detail/qjyong/5582087?下載配套示例項(xiàng)目源代碼。
1.?? Eclipse-jee的安裝
進(jìn)入eclipse官網(wǎng)的下載頁(yè)面:http://www.eclipse.org/downloads/,如下圖所示:
根據(jù)你的操作系統(tǒng)具體情況選擇相應(yīng)的版本。我這里選擇的是“Eclipse IDE for JavaEE Developers”的Windows 32 Bit版本。下載到本地磁盤(pán)即可。把下載完成的“eclipse-jee-juno-SR2-win32.zip”解壓縮到本地磁盤(pán)指定目錄下。我這里是解壓縮在D:盤(pán)根目錄下。
進(jìn)入解壓縮后的目錄中,雙擊“eclipse.exe”即可打開(kāi)Eclipse的工作界面。(注:Eclipse正常運(yùn)行的前提是在系統(tǒng)變量中存在名為“JAVA_HOME”的變量,值為JDK的安裝目錄)。
2.?? Maven的安裝和配置
2.1.? 安裝
進(jìn)入Maven官網(wǎng)的下載頁(yè)面:http://maven.apache.org/download.cgi,如下圖所示:
選擇當(dāng)前最新版本:“apache-maven-3.0.4-bin.zip”,下載到本地,解壓縮到本地磁盤(pán)D:下。
2.2.? 配置
進(jìn)入Maven安裝目錄下的conf子目錄中,打開(kāi)settings.xml進(jìn)行配置修改。
2.2.1.?? 修改默認(rèn)的本地倉(cāng)庫(kù)位置
Maven默認(rèn)的本地倉(cāng)庫(kù)位置是當(dāng)前用戶(hù)工作目錄下的“.m2/repository”,使用過(guò)程中這個(gè)目錄里的文件會(huì)比較多,占用空間越來(lái)越大。一般建議更換到其它磁盤(pán)目錄下。如下配置,就把默認(rèn)的本地倉(cāng)庫(kù)更改到D: /.m2/repository這個(gè)目錄(這個(gè)目錄結(jié)構(gòu)需要自己創(chuàng)建好)。
| <localRepository>d:/.m2/repository</localRepository> |
2.2.2.?? 修改默認(rèn)的中央倉(cāng)庫(kù)鏡像
Maven默認(rèn)的中央倉(cāng)庫(kù)里的文件不全。所以,都需要自行添加其它的鏡像地址。在settings.xml文件中的“<mirrors>”標(biāo)簽里添加如下內(nèi)容:
| ???? <mirror> ?????? <id>ibiblio</id> ???? ??<mirrorOf>central</mirrorOf> ?????? <name>Human Readable Name for this Mirror.</name> ?????? <url>http://mirrors.ibiblio.org/maven2/</url> ???? </mirror> |
保存所做的修改,同時(shí)還需要把這個(gè)settings.xml文件復(fù)制一份到“D:/.m2”目錄下。
3.?? Eclipse中m2eclipse插件的安裝
Eclipse默認(rèn)不支持Maven。需要給它添加m2eclipse插件。下面是具體的操作步驟。
3.1.? 插件安裝
依次選擇Eclipse菜單欄的“Help”菜單à“Instance NewSoftWare”菜單項(xiàng),就會(huì)彈出如下對(duì)話(huà)窗口:
選擇“Add..”按鈕,又會(huì)彈出如下對(duì)話(huà)框:
???????? 這個(gè)對(duì)話(huà)框就是用于添加一個(gè)插件地址的。在“Name”對(duì)應(yīng)的輸入框里輸入該操作的一個(gè)標(biāo)識(shí)名。在“Location”對(duì)應(yīng)的輸入框里輸入這個(gè)插件的安裝地址。注:Maven的Eclipse插件地址為:http://download.eclipse.org/technology/m2e/releases。輸入后,如下圖所示:
輸入完成后,點(diǎn)擊右下角的“OK”按鈕,就會(huì)彈出如下對(duì)話(huà)框:
這里需要選擇想要安裝的插件的詳細(xì)內(nèi)容。選中“Maven Integration for Eclipse”前面的復(fù)選框。如下圖所示:
選擇完成后,點(diǎn)擊右下方的“Next>”按鈕進(jìn)行安裝。安裝成功后,會(huì)提示需要重啟Eclipse來(lái)生效這次配置。重啟之后,這個(gè)Eclipse就可以使用m2eclipse插件功能了。
3.2.? 配置
插件安裝好之后,還需要進(jìn)行一些配置才能夠開(kāi)始使用Maven的功能。
3.2.1.?? 設(shè)置m2eclipse插件所關(guān)聯(lián)的Maven程序
依次選擇Eclipse菜單欄的“Window”à“Preferences”菜單項(xiàng),就會(huì)彈出如下對(duì)話(huà)框:
在這個(gè)對(duì)話(huà)框左邊的導(dǎo)航欄中展開(kāi)“Maven”目錄結(jié)點(diǎn),并選擇“Installations”子節(jié)點(diǎn),如下圖所示:
這里需要關(guān)聯(lián)上對(duì)應(yīng)的Maven安裝程序。具體操作是,在右邊面板中選擇“Add…”按鈕,會(huì)彈出如下選擇Maven安裝目錄的選擇對(duì)話(huà)框:
通過(guò)這個(gè)對(duì)話(huà)框來(lái)選擇Maven的具體安裝目錄。選擇好之后就點(diǎn)擊“確定”按鈕。如下圖所示:
3.2.2.?? 設(shè)置自定義的本地倉(cāng)庫(kù)
選擇如上圖對(duì)話(huà)窗口左邊菜單樹(shù) “Maven”節(jié)點(diǎn)下的“UserSettings”子節(jié)點(diǎn),它默認(rèn)的配置文件是“C:\Documents and Settings\csdn\.m2\settings.xml”,如下圖所示:
這邊需要修改為我們自定義倉(cāng)庫(kù)位置下的settings.xml文件。具體操作是,點(diǎn)擊“Browse…”按鈕來(lái)選擇上一步驟修改的本地倉(cāng)庫(kù)目錄下的settings.xml文件,如下圖所示:
在上圖中選擇D:/.m2目錄下的“settings.xml”文件,點(diǎn)擊“打開(kāi)”按鈕來(lái)確認(rèn)剛才的選擇,就會(huì)回到如下圖的對(duì)話(huà)窗口中:
在上圖中點(diǎn)擊右下角的“OK”按鈕來(lái)完成所有的配置修改。
4.?? 使用Maven來(lái)構(gòu)建Web項(xiàng)目
4.1.? 創(chuàng)建Maven的web項(xiàng)目
m2eclispe插件中默認(rèn)提供了一些Maven樣板項(xiàng)目,可以使用這些樣板來(lái)創(chuàng)建符合我們要求的項(xiàng)目。具體操作如下步驟:
在eclipse菜單欄中選擇“File”à“News”à“Other”菜單項(xiàng),就會(huì)打開(kāi)如下對(duì)話(huà)窗口,在窗口中選擇“Maven”節(jié)點(diǎn)下“Maven Project”條目,如下圖所示:
點(diǎn)擊“Next>”按鈕,進(jìn)入如下窗口:
再次選擇“Next >”按鈕,進(jìn)入如下窗口:
在這個(gè)窗口中選擇“maven-archetype-webapp”來(lái)創(chuàng)建一個(gè)Maven的web項(xiàng)目,再選擇“Next>”按鈕,進(jìn)入如下圖窗口:
在上圖窗口的“Group Id”中輸入項(xiàng)目的基本包名,在“Artifact Id”中輸入項(xiàng)目名,其它輸入框不用理會(huì)。點(diǎn)擊“Finish”按鈕來(lái)完成項(xiàng)目的整個(gè)創(chuàng)建過(guò)程。
之后,Maven就會(huì)根據(jù)項(xiàng)目的配置去中央倉(cāng)庫(kù)下載相應(yīng)的文件和jar包。完成后,就有如下項(xiàng)目目錄結(jié)構(gòu):
如上圖所示,“pom.xml”文件就是這個(gè)項(xiàng)目的maven配置文件。打開(kāi)此文件,并在“<build>”標(biāo)簽內(nèi)添加如下配置:
| <defaultGoal>install</defaultGoal> <plugins> ???????? <plugin> ?????????????????? <groupId>org.apache.maven.plugins</groupId> ?????????????????? <artifactId>maven-surefire-plugin</artifactId> ?????????????????? <configuration> ??????????????????????????? <skip>true</skip> ?????????????????? </configuration> ???????? </plugin> ? ???????? <plugin> ?????????????????? <groupId>org.apache.maven.plugins</groupId> ?????????????????? <artifactId>maven-compiler-plugin</artifactId> ?????????????????? <version>2.5.1</version> ?????????????????? <configuration> ??????????????????????????? <source>1.6</source> ??????????????????????????? <target>1.6</target> ??????????????????????????? <encoding>UTF-8</encoding> ?????????????????? </configuration> ???????? </plugin> </plugins> |
這段配置中“<defaultGoal>”標(biāo)簽指定maven的默認(rèn)操作是“install”;“maven-surefire-plugin”插件配置了“忽略編譯項(xiàng)目時(shí)的測(cè)試運(yùn)行”;“maven-compiler-plugin”插件指定了一些編譯時(shí)的信息配置。
4.2.? 使用Maven添加項(xiàng)目依賴(lài)包
Java Web項(xiàng)目中還需要添加ServletAPI、JSP API以及JSTL的jar包,這可以直接在pom.xml文件中添加了。如下pom.xml文件中就添加了Servlet-API 2.5版本、JSP-API2.1版本、JSTL 1.2版本:
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ???????? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ???????? <modelVersion>4.0.0</modelVersion> ???????? <groupId>com.qiujy</groupId> ???????? <artifactId>testweb_svn</artifactId> ???????? <packaging>war</packaging> ???????? <version>0.0.1-SNAPSHOT</version> ???????? <name>testweb_svn Maven Webapp</name> ???????? <url>http://maven.apache.org</url> ???????? <dependencies> ?????????????????? <dependency> ??????????????????????????? <groupId>javax.servlet</groupId> ??????????????????????????? <artifactId>servlet-api</artifactId> ??????????????????????????? <version>2.5</version> ??????????????????????????? <scope>provided</scope> ?????????????????? </dependency> ?????????????????? <dependency> ??????????????????????????? <groupId>javax.servlet.jsp</groupId> ??????????????????????????? <artifactId>jsp-api</artifactId> ??????????????????????????? <version>2.1</version> ??????????????????????????? <scope>provided</scope> ?????????????????? </dependency> ?????????????????? <dependency> ??????????????????????????? <groupId>javax.servlet</groupId> ??????????????????????????? <artifactId>jstl</artifactId> ??????????????????????????? <version>1.2</version> ?????????????????? </dependency> ???????? </dependencies> ???????? <build> ?????????????????? <finalName>testweb_svn</finalName> ?????????????????? <defaultGoal>install</defaultGoal> ?????????????????? <plugins> ??????????????????????????? <plugin> ???????????????????????????????????? <groupId>org.apache.maven.plugins</groupId> ???????????????????????????????????? <artifactId>maven-surefire-plugin</artifactId> ???????????????????????????????????? <configuration> ?????????????????????????????????????????????? <skip>true</skip> ???????????????????????????????????? </configuration> ??????????????????????????? </plugin> ?????????????????? </plugins> ???????? </build> </project> |
這里說(shuō)明一下:對(duì)Servlet和JSP的API包,在編譯web項(xiàng)目時(shí)需要使用,而把web項(xiàng)目打包部署到web容器(如Tomcat)中運(yùn)行時(shí)就不需要了。因此,這里把它們的<scope>配置為provided。
4.3.? 把Maven項(xiàng)目轉(zhuǎn)換成Eclipse工程
為了便于在Eclipse中開(kāi)發(fā)JavaWeb項(xiàng)目,我們需要把Maven項(xiàng)目的目錄結(jié)構(gòu)轉(zhuǎn)換成Eclipse工程的目錄結(jié)構(gòu),具體按如下操作步驟進(jìn)行。
選中項(xiàng)目在右鍵菜單中選擇“Properties”,彈出如下圖所示對(duì)話(huà)窗口:
選中左邊功能樹(shù)中的“ProjectFacets”節(jié)點(diǎn),然后在對(duì)應(yīng)的右邊面板中點(diǎn)擊“Convert to faceted from…”這個(gè)超鏈接,右邊面板就會(huì)切換成如下圖所示:
在“Project Facet”中進(jìn)行相應(yīng)配置,如下圖所示:
配置好之后,選擇窗口右下角的“OK”按鈕來(lái)保存配置。這時(shí),這個(gè)Maven項(xiàng)目就會(huì)轉(zhuǎn)換成Eclipse的web工程目錄結(jié)構(gòu)。
如果還需要直接在Eclipse中運(yùn)行這個(gè)web工程,還需要把Maven依賴(lài)包添加到本項(xiàng)目類(lèi)路徑中:
還需要添加部署到Tomcat時(shí)的依賴(lài)包,如下圖:
點(diǎn)擊“Finish”來(lái)完成后,對(duì)話(huà)框如下圖所示:
之后點(diǎn)擊“OK”按鈕來(lái)完成這些設(shè)置。
4.4.? 把web.xml修改成相應(yīng)版本
由于Maven中的“maven-archetype-webapp”樣板項(xiàng)目的“web.xml”是2.3版本的,我們需要替換成新版本:可以把Eclipse的web工程webContent/WEB-INF目錄下的“web.xml”文件復(fù)制替換掉“src/main/webapp/WEB-INF/”目錄下的web.xml文件。
注意:由于Maven項(xiàng)目編譯和發(fā)布時(shí),它只是把“src”目錄下的資源壓縮到一個(gè)war包中。而使用Eclipse-JEE開(kāi)發(fā)web項(xiàng)目時(shí),都是把頁(yè)面資源(html/css/js/img/JSP)放置在WebContent目錄下。所以,在使用Maven來(lái)編譯和發(fā)布項(xiàng)目前,需要把WebContent目錄下的資源復(fù)制到“src/main/webapp/”目錄下。
5.?? 使用Maven編譯和發(fā)布項(xiàng)目
在項(xiàng)目中的“pom.xml”文件上點(diǎn)擊右鍵,在彈出的菜單中選擇“Run AS”à“Maveninstall”來(lái)編譯和生成項(xiàng)目。如下圖所示:
???????? 在編譯和生成過(guò)程中,可以在“Console”面板中可以看到Maven編譯過(guò)程的信息,如果編譯和生成成功,可以在“Console”面板看到“BUILD SUCCESS”字樣。
???????? 另外,在修改pom.xml文件中的相關(guān)jar包信息時(shí),可能由于倉(cāng)庫(kù)中不存在,就會(huì)出現(xiàn)一些錯(cuò)誤,這時(shí),項(xiàng)目編譯就可能存在一些問(wèn)題。此時(shí)可通過(guò)“Maven clean”選項(xiàng)來(lái)清除編譯,然后再修改pom.xml到正確情況。再通過(guò)“Maven install”來(lái)編譯和生成。
6.?? 示例項(xiàng)目代碼
7.?? 附文件
如下是一個(gè)SpringMVC3+Spring3+Hibernate4的web項(xiàng)目中的pom.xml文件:
| <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ????xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ????<modelVersion>4.0.0</modelVersion> ????<groupId>com.qiujy</groupId> ????<artifactId>site2013</artifactId> ????<packaging>war</packaging> ????<version>0.0.1-SNAPSHOT</version> ????<name>site2013 Maven Webapp</name> ????<url>http://maven.apache.org</url> ? ????<properties> ???????<spring.version>3.2.3.RELEASE</spring.version> ???????<hibernate.version>4.2.2.Final</hibernate.version> ???????<slf4j.version>1.7.5</slf4j.version> ???????<jackson.version>2.2.2</jackson.version> ????</properties> ? ????<dependencies> ???????<!-- servlet/jsp api --> ???????<dependency> ???????????<groupId>javax.servlet</groupId> ???????????<artifactId>servlet-api</artifactId> ???????????<version>2.5</version> ???????????<scope>provided</scope> ???????</dependency> ???????<dependency> ???????????<groupId>javax.servlet.jsp</groupId> ???????????<artifactId>jsp-api</artifactId> ???????????<version>2.1</version> ???????????<scope>provided</scope> ???????</dependency> ? ???????<!-- jstl --> ???????<dependency> ???????????<groupId>javax.servlet</groupId> ???????????<artifactId>jstl</artifactId> ???????????<version>1.2</version> ???????</dependency> ?????? <!-- javaxmail ?????? <dependency> ?????????? <groupId>javax.mail</groupId> ?????????? <artifactId>mail</artifactId> ?????????? <version>1.4.5</version> ??? ??? </dependency>--> ? ???????<!-- slf4j --> ???????<dependency> ???????????<groupId>org.slf4j</groupId> ???????????<artifactId>slf4j-log4j12</artifactId> ???????????<version>${slf4j.version}</version> ???????</dependency> ? ???????<!-- junit --> ???????<dependency> ???????????<groupId>junit</groupId> ???????????<artifactId>junit</artifactId> ???????????<version>4.8.2</version> ???????</dependency> ? ???????<!-- proxool <dependency> <groupId>proxool</groupId> <artifactId>proxool</artifactId> ?????????? <version>0.8.3</version> </dependency> --> ? ???????<!-- mysql driver --> ???????<dependency> ???????????<groupId>mysql</groupId> ???????????<artifactId>mysql-connector-java</artifactId> ???????????<version>5.1.22</version> ???????</dependency> ? ???????<!-- sql server數(shù)據(jù)庫(kù)驅(qū)動(dòng)?<dependency> <groupId>net.sourceforge.jtds</groupId> ?????????? <artifactId>jtds</artifactId> <version>1.3.0</version> </dependency> --> ? ???????<!-- oracle數(shù)據(jù)庫(kù)驅(qū)動(dòng):maven倉(cāng)庫(kù)中的ojdbc下載需要oracle的官方授權(quán),先在網(wǎng)上找一個(gè)ojdbc14.jar包,上傳到本地的maven倉(cāng)庫(kù) ?????????? mvn install:install-file -Dfile=D:/resources/ojdbc/ojdbc14.jar -DgroupId=com.oracle ?????????? -DartifactId=ojdbc14 -Dversion=10.2.0.1.0 -Dpackaging=jar <dependency> <groupId>com.oracle</groupId> ?????????? <artifactId>ojdbc14</artifactId> <version>10.2.0.4.0</version> </dependency> --> ? ???????<!-- fileupload --> ???????<dependency> ???????????<groupId>commons-fileupload</groupId> ???????????<artifactId>commons-fileupload</artifactId> ???????????<version>1.2.2</version> ???????</dependency> ???????<!-- io --> ???????<dependency> ???????????<groupId>commons-io</groupId> ???????????<artifactId>commons-io</artifactId> ???????????<version>2.4</version> ???????</dependency> ? ???????<!-- c3p0 --> ???????<dependency> ???????????<groupId>c3p0</groupId> ???????????<artifactId>c3p0</artifactId> ???????????<version>0.9.1.2</version> ???????</dependency> ? ???????<!-- struts2 <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> ?????????? <version>${struts.version}</version> <exclusions> <exclusion> <artifactId>javassist</artifactId> ?????????? <groupId>javassist</groupId> </exclusion> </exclusions> </dependency> <dependency> ?????????? <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> ?????????? <version>${struts.version}</version> <exclusions> <exclusion> <artifactId>spring-core</artifactId> ?????????? <groupId>org.springframework</groupId> </exclusion> </exclusions> </dependency> --> ? ???????<!-- spring3 --> ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-beans</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ? ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-context</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ? ???????<!-- spring需要的aspectj依賴(lài)包?--> ???????<dependency> ???????????<groupId>org.aspectj</groupId> ???????????<artifactId>aspectjweaver</artifactId> ???????????<version>1.7.2</version> ???????</dependency> ? ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-tx</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-jdbc</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-orm</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ? ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-context-support</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ? ???????<!-- spring web --> ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-web</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ? ???????<!-- spring mvc --> ???????<dependency> ???????????<groupId>org.springframework</groupId> ???????????<artifactId>spring-webmvc</artifactId> ???????????<version>${spring.version}</version> ???????</dependency> ? ???????<!-- <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> ?????????? <version>2.1.6</version> </dependency> --> ? ???????<!-- hibernate4 --> ???????<dependency> ?????? ????<groupId>org.hibernate</groupId> ???????????<artifactId>hibernate-core</artifactId> ???????????<version>${hibernate.version}</version> ???????????<exclusions> ??????????????<exclusion> ??????????????????<groupId>org.slf4j</groupId> ??????????????????<artifactId>slf4j-api</artifactId> ??????????????</exclusion> ???????????</exclusions> ???????</dependency> ???????<dependency> ???????????<groupId>org.hibernate</groupId> ???????????<artifactId>hibernate-ehcache</artifactId> ???????????<version>${hibernate.version}</version> ???????</dependency> ? ???????<dependency> ???????????<groupId>com.fasterxml.jackson.core</groupId> ???????????<artifactId>jackson-databind</artifactId> ???????????<version>${jackson.version}</version> ???????</dependency> ????</dependencies> ? ????<!-- ========================================================== --> ????<build> ???????<finalName>site2013</finalName> ???????<defaultGoal>install</defaultGoal> ???????<plugins> ???????????<plugin> ????????????? <groupId>org.apache.maven.plugins</groupId> ????????????? <artifactId>maven-surefire-plugin</artifactId> ??????????????<configuration> ??????????????????<skip>true</skip> ??????????????</configuration> ???????????</plugin> ? ???????????<plugin> ??????????????<groupId>org.apache.maven.plugins</groupId> ??????????????<artifactId>maven-compiler-plugin</artifactId> ??????????????<version>2.5.1</version> ??????????????<configuration> ??????????????????<source>1.6</source> ??????????????????<target>1.6</target> ??????????????????<encoding>UTF-8</encoding> ??????????????</configuration> ???????????</plugin> ???????</plugins> ????</build> </project> |
總結(jié)
以上是生活随笔為你收集整理的使用Eclipse构建Maven项目 (step-by-step)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蔚来汽车 9 月新增 308 座充换电站
- 下一篇: 理想汽车9月交付36060辆 创单月交付