Java的項(xiàng)目構(gòu)建工具M(jìn)aven的使用教程_第1頁(yè)
Java的項(xiàng)目構(gòu)建工具M(jìn)aven的使用教程_第2頁(yè)
Java的項(xiàng)目構(gòu)建工具M(jìn)aven的使用教程_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Java的項(xiàng)目構(gòu)建工具M(jìn)aven的使用教程Java的項(xiàng)目構(gòu)建工具M(jìn)aven的使用教程一、Maven是什么二、安裝 Maven安裝maven非常簡(jiǎn)單,訪(fǎng)問(wèn)Maven官方頁(yè)下載即可:, apache, org/download. cgi下載完后配置M2_H0ME環(huán)境變量,然后終端運(yùn)行mvn-version, 看到正確的輸出提示,Maven就安裝完成了。三、Maven基本概念Maven的核心思想是POM,即ProjectObjectModel (項(xiàng)目對(duì)象模 型)。P0M文件是以XML文件的形式描述一個(gè)Maven項(xiàng)目所用到的 資源(源碼、依賴(lài)、測(cè)試等)。下圖描述了 POM文件的結(jié)構(gòu),以及 Maven是

2、如何調(diào)用POM文件的。當(dāng)執(zhí)行一條Maven命令時(shí),會(huì)傳入一個(gè)pom文件,Maven會(huì)在該pom里面的描述的資源上執(zhí)行POM文件:modeIVersion 是 POM 模型版木,4. 0. 0 支持 Maven2 和 3MavenCoordinates (Maven 坐標(biāo))(1)groupld:它是一個(gè)組織或者項(xiàng)目的唯一 ID,大多數(shù)情況下會(huì)使用項(xiàng)目的java包的根名作為group ID,例如com. pastqing(2) artifactld:它是止在構(gòu)建的項(xiàng)目名稱(chēng),例如一個(gè)支付系統(tǒng) artifactld 是 web-pay o artifactld 是 Maven 倉(cāng)庫(kù)屮 group Id

3、 目錄 下的子目錄名(3) version:顧名思義項(xiàng)目發(fā)行的版木號(hào)以上三項(xiàng)都是構(gòu)建結(jié)果名稱(chēng)的一部分,在項(xiàng)目構(gòu)建后會(huì)生成一個(gè) jar包,位于Maven倉(cāng)庫(kù)的路徑就是MAVEN_REPO/com/pastqing/web-pay/1. 0/web-pay-l. 0. jar四、一個(gè)用Maven構(gòu)建的HelioWorld java項(xiàng)目利用Maven插件archetype構(gòu)建一個(gè)項(xiàng)目:在終端中打開(kāi)工作目錄運(yùn)行命令:mvnarchetype:generate,第一次運(yùn)行時(shí)比較慢,原因是第一次需要從Maven中央倉(cāng)庫(kù)中 下載相關(guān)項(xiàng)目原型。下載完畢后,會(huì)選擇項(xiàng)目模型,以及輸入 groupld, artif

4、actld, version等,構(gòu)建完畢后會(huì)有成功提示。打包項(xiàng)目:切換到項(xiàng)目根目錄,運(yùn)行mvnpackageo打包成功之 后,項(xiàng)目會(huì)生成一個(gè)target文件夾,里面有生成好的jar文件和 class文件。運(yùn)行j吐文件:java-cptarget/helloWorldT. 0-SNAPSHOT. jarcom. pastqing. App至此一個(gè)最簡(jiǎn)單Maven構(gòu)建的java項(xiàng)目就完成了。五、一個(gè)用Maven構(gòu)建的java-web項(xiàng)目生成一個(gè)web項(xiàng)目與生成java項(xiàng)目基本類(lèi)似,只是用的模型不 同而己。這里不再闡述。下面我們具體說(shuō)說(shuō)如何使用Tomcat或者 jetty插件運(yùn)行web項(xiàng)目。這里我們

5、以tomcat舉例。MavenTomcat :H彳牛安裝:http:/tomcat apache org/maven-plugin-2. 2/我們將如下插件信息加入到web項(xiàng)目中的'POM文件中 org. apache tomcat ni8ventomc8t6-m3ven-plugin2. 2org apache tomcat maventomcat7-maven-plugin2 2 這樣我們集成了這個(gè)tomcat的Maven插件,只需要一個(gè)命令就可以部署、啟動(dòng)服務(wù)了。命令如下:mvntomcat:run(tomcat6)mvntomcat7:run(tomcat7)使用tomcatM

6、aven插件自動(dòng)部署到外部tomcat以上自動(dòng)部署,會(huì)使用Maven內(nèi)嵌的Tomcat,下而我們修改POM 文件,讓項(xiàng)目部署到外部的Tomcat中。修改項(xiàng)目POM文件,添加服務(wù)器配置信息org apache tomcat m8ventomc8t7-ni8ven-plugin2. 2http:/localhost:8080/manager/texttomcat7adminadmi n其中 server, username, password 的值與%Maven_HOME 中的 setting. xml 中的 server, username, password k對(duì)應(yīng)。啟動(dòng)外部 tomcat,

7、運(yùn)行命令 mvntomcat7:redeploy六、如何用Maven構(gòu)建多模塊項(xiàng)目1. 父 P0M所有的Mavenpom文件都繼承自一個(gè)父POM,如果沒(méi)有指定父pom,則該pom文件繼承自根POMo pom文件的集成關(guān)系如下圖所示:可以讓一個(gè)pom文件顯式地繼承另一個(gè)pom文件。這樣,可以通 過(guò)修改公共父pom文件的設(shè)置來(lái)修改所有子pom文件的設(shè)置。這里 我們使用parent標(biāo)簽來(lái)定義父pom。下面我們具體搭建一個(gè)多模塊 Mavne項(xiàng)目2. 構(gòu)建項(xiàng)目目錄結(jié)構(gòu)我們創(chuàng)建一個(gè)maven-web項(xiàng)目,名字叫EducationCloud,接下來(lái) 我們?cè)陧?xiàng)目目錄下創(chuàng)建幾個(gè)文件夾用來(lái)劃分我們的模塊。它們分別

8、 是 Education-parent (父模塊),Education-core (業(yè) 務(wù)),Education-entity (實(shí)彳本),Education-web (web 月畏務(wù))目錄的劃分可以根據(jù)需要進(jìn)行,我的劃分如上3. 修改pom文件我們用module標(biāo)簽來(lái)進(jìn)行劃分模塊。打開(kāi)根目錄下的pom文件, 添加moudle標(biāo)簽。<z,l. 0"encoding二"UTF-8z/>4. 0. Ocom. EducationC 1 oudEducationC 1 oud 1. 0- SNAPSHOTpomEducation-parentEducation-cor

9、eEducat ionent i tyEducation-webEducationCloud這里我們說(shuō)下packaging標(biāo)簽:最常見(jiàn)的就是打包為jar, war 了。任何一個(gè)Maven項(xiàng)目都需要定義pom文件中的packaging元素, 如果不聲明該元素,則默認(rèn)打包為jar,如果定義值為w吐那么就 打包為war包。如果值為pom,那么什么包都不生成(通常用于父 模塊)。給各個(gè)模塊添加parent標(biāo)簽:parent標(biāo)簽用來(lái)定義父P0M的坐標(biāo)位置的,定義如下:com. EducationCloudEducationCloud-parent1. O-SXAPSHOTgroupld, aritfac

10、tld, version是常規(guī)表不父pom位置信息的元 素,relativePath是表示父pom位置的相對(duì)路徑,默認(rèn) 為./pom. xml,這里需要注意的是 group Id, aritfactld, version 必 須與父pom文件中的對(duì)應(yīng)起來(lái)使用dependencyManagement管理項(xiàng)目所有依賴(lài)為了統(tǒng)一管理依賴(lài),我們?cè)诟疙?xiàng)目模塊的pom文件中使用 dependencyManagement來(lái)蘆明項(xiàng)目的所有依賴(lài),這樣在其他的子項(xiàng) 目中引用依賴(lài)時(shí)就可以省略版本號(hào)的編寫(xiě),修改起來(lái)也很容易。編寫(xiě)*父項(xiàng)目模塊*educationCloud-parent的pom文件,添加 如下:使用p 1 uginManagement管理項(xiàng)目中的Maven插件為了統(tǒng)一管理項(xiàng)目中的Maven插件,如Maven編譯插件,打包插 件等及其配置信息,在父項(xiàng)目pom文件中添加p 1 uginManagement來(lái) 管理,這樣在所有子模塊中引用的插件都會(huì)統(tǒng)一處理,添加如下:org. apache, maven, pluginsmaven-complier- plugin3. 31. 71. 7UTF-8上而我們添加了 maven編譯插件的配置,用jd

溫馨提示

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

評(píng)論

0/150

提交評(píng)論