Maven學(xué)習(xí)基礎(chǔ)_第1頁(yè)
Maven學(xué)習(xí)基礎(chǔ)_第2頁(yè)
Maven學(xué)習(xí)基礎(chǔ)_第3頁(yè)
Maven學(xué)習(xí)基礎(chǔ)_第4頁(yè)
Maven學(xué)習(xí)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Maven使用基礎(chǔ) 一、一、Maven的基本概念的基本概念 Maven(翻譯為翻譯為專家專家,內(nèi)行內(nèi)行)是跨平臺(tái)的項(xiàng)目是跨平臺(tái)的項(xiàng)目管理工具。主要服務(wù)于基于管理工具。主要服務(wù)于基于Java平臺(tái)的項(xiàng)目構(gòu)建,依平臺(tái)的項(xiàng)目構(gòu)建,依賴管理和項(xiàng)目信息管理賴管理和項(xiàng)目信息管理。 1.1、項(xiàng)目構(gòu)建、項(xiàng)目構(gòu)建 項(xiàng)目構(gòu)建過(guò)程包括【清理項(xiàng)目】【編譯項(xiàng)目】【測(cè)試項(xiàng)目】【生成測(cè)試報(bào)告】【打包項(xiàng)目】【部署項(xiàng)目】這幾個(gè)步驟,這六個(gè)步驟就是一個(gè)項(xiàng)目的完整構(gòu)建過(guò)程。 二、二、Maven安裝安裝 1、首先要確保電腦上已經(jīng)安裝了、首先要確保電腦上已經(jīng)安裝了JDK(要要jdk 1.6+的版的版本本),配置好,配置好JDK的環(huán)境變量

2、,使用如下的兩個(gè)命令檢的環(huán)境變量,使用如下的兩個(gè)命令檢查檢查查檢查JDK安裝的情況安裝的情況。 2、對(duì)、對(duì)apache-maven-3.2.3-bin.zip進(jìn)行解進(jìn)行解壓縮壓縮 3、設(shè)置系統(tǒng)環(huán)境變量:、設(shè)置系統(tǒng)環(huán)境變量:MAVEN_HOME 4、設(shè)置環(huán)境變量、設(shè)置環(huán)境變量Path,將,將%MAVEN_HOME%bin加入加入Path中,一定要注意要用分號(hào);與其他值中,一定要注意要用分號(hào);與其他值隔開(kāi)。隔開(kāi)。 %MAVEN_HOME%bin代表的就是E:apache-maven-3.2.3bin目錄 5、驗(yàn)證、驗(yàn)證Maven安裝是否安裝是否成功。成功。輸入mvnv命令查看Maven的相關(guān)信息

3、1、Maven項(xiàng)目的目錄約定項(xiàng)目的目錄約定 MavenProjectRoot(項(xiàng)目根目錄)|-src|-main|-java存放項(xiàng)目的.java文件|-resources存放項(xiàng)目資源文件|-test|-java存放所有測(cè)試.java文件|-resources存放項(xiàng)目資源文件|-target項(xiàng)目輸出位置|-pom.xml-用于標(biāo)識(shí)該項(xiàng)目是一個(gè)Maven項(xiàng)目 手動(dòng)創(chuàng)建手動(dòng)創(chuàng)建Maven項(xiàng)目,使用項(xiàng)目,使用Maven編譯編譯 1、創(chuàng)建項(xiàng)目根文件夾,例如Maven01 2、在Maven01文件夾中創(chuàng)建“pom.xml”文件 pom. xml文件中的內(nèi)容如下:4.0.0cn.gacl.maven.hel

4、lohello-firstSNAPSHOT-0.0.1 首先進(jìn)入到項(xiàng)目根目錄,然后使用命令”mvn compile”進(jìn)行編譯 使用Maven編譯完成之后,在項(xiàng)目根目錄下會(huì)生成一個(gè)target文件夾 使用mvn clean命令清除編譯結(jié)果,也就是把編譯生成的target文件夾刪掉 修改從修改從Maven中心倉(cāng)庫(kù)下載到本地的中心倉(cāng)庫(kù)下載到本地的jar包的默認(rèn)存儲(chǔ)包的默認(rèn)存儲(chǔ)位置位置 從Maven中心倉(cāng)庫(kù)下載到本地的jar包的默認(rèn)存放在”$user.home/.m2/repository”中,$user.home表示當(dāng)前登錄系統(tǒng)的用戶目錄(如C:Usersgacl) Jar包存放在這個(gè)位置不太好,我

5、們希望能夠自己定義下載下來(lái)的jar包的存放位置,因此我們可以自己設(shè)置下載到本地時(shí)的jar包的存放目錄。 找到apache-maven-3.2.3conf目錄下的settings.xml文件,編輯setting.xml文件,加上下面的代碼 E:/repository 使用Maven編譯項(xiàng)目遇到“maven編碼gbk的不可映射字符”解決辦法 解決這個(gè)問(wèn)題的思路:在maven的編譯插件中聲明正確的字符集編碼編碼編譯使用的字符集編碼與代碼文件使用的字符集編碼一致! 安裝系統(tǒng)之后,一般中文系統(tǒng)默認(rèn)字符集是GBK。我們安裝的軟件一般都繼承使用操作系統(tǒng)的默認(rèn)字符集。所以當(dāng)在中文XP或者win7系統(tǒng)開(kāi)發(fā),在使

6、用maven(mvncompile)編譯項(xiàng)目的時(shí)候,就會(huì)出現(xiàn)“編碼gbk的不可映射字符”:這個(gè)是由于代碼使用的UTF-8,而maven編譯的時(shí)候使用的GBK的緣故。可以通過(guò)修改項(xiàng)目的pom文件,可以告訴maven這個(gè)項(xiàng)目使用UTF-8編碼來(lái)編譯 UTF-8 使用使用Maven編譯、清理、測(cè)試、打包項(xiàng)目編譯、清理、測(cè)試、打包項(xiàng)目 1、使用、使用Maven編譯項(xiàng)目,編譯項(xiàng)目的命令是:編譯項(xiàng)目,編譯項(xiàng)目的命令是:mvn compile“ 2、使用、使用Maven清理項(xiàng)目,清理項(xiàng)目的命令是:清理項(xiàng)目,清理項(xiàng)目的命令是:mvn clean“ 3、使用、使用Maven測(cè)試項(xiàng)目,測(cè)試項(xiàng)目的命令是:測(cè)試項(xiàng)目,

7、測(cè)試項(xiàng)目的命令是:mvn test“ 4、使用、使用Maven打包項(xiàng)目,打包項(xiàng)目的命令是:打包項(xiàng)目,打包項(xiàng)目的命令是:mvn package“ 5、使用、使用Maven部署項(xiàng)目,部署項(xiàng)目的命令是:部署項(xiàng)目,部署項(xiàng)目的命令是:mvn install 使用mvninstall命令,就把maven構(gòu)建項(xiàng)目的【清理】【編譯】【測(cè)試】【打包】的這幾個(gè)過(guò)程都做了,同時(shí)將打包好的jar包發(fā)布到本地的Maven倉(cāng)庫(kù)中,所以maven最常用的命令還是mvninstall,這個(gè)命令能夠做的事情最多。 maven的編譯,清理,測(cè)試,打包,部署命令是可以幾個(gè)命令同時(shí)組合起來(lái)使用的,常用的命令組合如下:1、先清理再編譯

8、:mvncleancompile“,還有的就是mvncleantest,mvncleanpackage,mvncleaninstall,這些組合命令都比較常用。 在別的項(xiàng)目中使用通過(guò)在別的項(xiàng)目中使用通過(guò)Maven安裝生成的項(xiàng)目的安裝生成的項(xiàng)目的jar包包 在上面,我們使用mvninstall命令將hello這個(gè)項(xiàng)目打包成了Hello-0.0.1-SNAPSHOT.jar包并且發(fā)布到本地的maven倉(cāng)庫(kù)E:repositorymegaclmavenHello0.0.1-SNAPSHOT中,下面我們來(lái)看看如何在別的項(xiàng)目中使用Hello-0.0.1-SNAPSHOT.jar 1、新建HelloFri

9、end項(xiàng)目,同時(shí)建立Maven約定的目錄結(jié)構(gòu)和pom.xml 2、編輯項(xiàng)目HelloFriend根目錄下的pom.xml,添加如下的代碼:ml文件4.0.0me.gacl.mavenHelloFriend0.0.1-SNAPSHOTHelloFriendjunitjunit4.9testme.gacl.mavenHello0.0.1-SNAPSHOTcompile maven作為一個(gè)高度自動(dòng)化構(gòu)建工具,本身提供了構(gòu)建項(xiàng)目的功能,下面就來(lái)體驗(yàn)一下使用maven構(gòu)建項(xiàng)目的過(guò)程。 一、構(gòu)建一、構(gòu)建Jave項(xiàng)目項(xiàng)目 1、使用mvnarchetype:generate命令:mvn archetype:g

10、enerate-DgroupId=com.mycompany.app-DartifactId=myapp-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=false mavenGeneratingprojectinBatchmode問(wèn)題的解決有這樣一個(gè)命令:mvnarchetype:generate-DgroupId=com.mycompany.app-DartifactId=my-app-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMo

11、de=false這句話的命令是創(chuàng)建一個(gè)默認(rèn)的項(xiàng)目,但我在執(zhí)行這個(gè)命令時(shí),命令行會(huì)停在INFOGeneratingprojectinBatchmode增加一個(gè)-X參數(shù),可以查看詳細(xì)信息mvnarchetype:generate-DgroupId=com.mycompany.app-DartifactId=my-app-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=falseX可以看到,程序停在了下面這一行。DEBUGSearchingforremotecatalog:/m

12、aven2/archetype-catalog.xml去查詢這個(gè)文件的時(shí)候網(wǎng)絡(luò)比較差或者其他原因,導(dǎo)致掛在那里。 解決方法 1.把上述地址復(fù)制到瀏覽器中,下載這個(gè)文件到本地。 2.把文件archetype-catalog.xml復(fù)制到目錄.m2repositoryorgapachemavenarchetypearchetype-catalog2.2下面。 3.在上述命令后增加參數(shù)-DarchetypeCatalog=local,變成讀取本地文件即可??梢钥吹剑琈aven幫我們創(chuàng)建的項(xiàng)目是一個(gè)標(biāo)準(zhǔn)的Maven項(xiàng)目,不過(guò)目前Maven只是幫我們生成了src/main/java(存放項(xiàng)目的源代碼)和

13、src/test/java(存放測(cè)試源代碼)這兩個(gè)目錄,但實(shí)際項(xiàng)目開(kāi)發(fā)中我們一般都會(huì)有配置文件,例如perties,所以我們還需要手動(dòng)創(chuàng)建src/main/resources(存放項(xiàng)目開(kāi)發(fā)中用到的配置文件,如存放perties等)和src/test/resources(存放測(cè)試時(shí)用到的配置文件) 1.2、JavaProject的的pom.xml文件說(shuō)明文件說(shuō)明 pom.xml文件的節(jié)點(diǎn)元素說(shuō)明: pom文件的頂級(jí)節(jié)點(diǎn)objectmodel版本,對(duì)Maven2和Maven3來(lái)說(shuō),只能是4.0.0項(xiàng)目創(chuàng)建組織的標(biāo)識(shí)符,一般是域名的倒寫(xiě)定義了項(xiàng)目在所屬組織的標(biāo)識(shí)符

14、下的唯一標(biāo)識(shí),一個(gè)組織下可以有多個(gè)項(xiàng)目當(dāng)前項(xiàng)目的版本,SNAPSHOT,表示是快照版本,在開(kāi)發(fā)中 打包的方式,有jar、war、ear等項(xiàng)目的名稱項(xiàng)目的地址 屬性配置,比如:構(gòu)建項(xiàng)目依賴的jar 其中由由groupId、artifactId和和version唯一的確定了一個(gè)項(xiàng)目坐標(biāo)唯一的確定了一個(gè)項(xiàng)目坐標(biāo) 二、構(gòu)建二、構(gòu)建JavaWeb項(xiàng)目項(xiàng)目 1、使用mvn archetype:create命令,如下所示: mvn archetype:create-DgroupId=com.mycompany.app-DartifactId=myWebApp-DarchetypeArtifactId=mav

15、en-archetype-webapp-DinteractiveMode=false 創(chuàng)建好的JavaWeb項(xiàng)目中目前只有src/main/resources目錄,因此還需要手動(dòng)添加src/main/java、src/test/java、src/test/resources 2.2、使用、使用Maven打包發(fā)布打包發(fā)布Web項(xiàng)目項(xiàng)目 在命令行切換到myWebApp目錄,執(zhí)行:mvn package,構(gòu)建成功后,myWebApp目錄目錄下多了一個(gè)target目錄,在這個(gè)目錄下會(huì)打包成myWebApp目錄.war,把這個(gè)war包拷貝到Tomcat的發(fā)布目錄下就可以運(yùn)行了. 除了使用Tomcat服務(wù)

16、器運(yùn)行Web項(xiàng)目之外,我們還可以在Web項(xiàng)目中集成Jetty發(fā)布運(yùn)行,首先在pom.xml文件中配置Jetty插件打開(kāi)命令行窗口,切換到myWebApp目錄,然后執(zhí)行:mvn jetty:run啟動(dòng)Jetty服務(wù)器,如下圖所示:4.0.0com.mycompany.appmyWebAppwar1.0-SNAPSHOTmyWebAppMavenWebappjunitjunit3.8.1testmyWebApporg.mortbay.jettymaven-jetty-plugin 三、三、Maven創(chuàng)建項(xiàng)目的命令說(shuō)明創(chuàng)建項(xiàng)目的命令說(shuō)明 mvnarchet

17、ype:create或者mvnarchetype:generate固定寫(xiě)法 -DgroupId組織標(biāo)識(shí)(包名) -DartifactId項(xiàng)目名稱 -DarchetypeArtifactId指定ArchetypeId,maven-archetype-quickstart,創(chuàng)建一個(gè)JavaProject;maven-archetype-webapp,創(chuàng)建一個(gè)WebProject -DinteractiveMode是否使用交互模式 archetype是mvn內(nèi)置的一個(gè)插件,create任務(wù)可以創(chuàng)建一個(gè)java項(xiàng)目骨架,DgroupId是軟件包的名稱,DartifactId是項(xiàng)目名,Darchetyp

18、eArtifactId是可用的mvn項(xiàng)目骨架.每一個(gè)骨架都會(huì)建相應(yīng)的目錄結(jié)構(gòu)和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用來(lái)創(chuàng)建一個(gè)JavaProject,而maven-archetype-webapp骨架則是用來(lái)創(chuàng)建一個(gè)JavaWebProject。 依賴依賴管理管理junitjunit4.9testme.gacl.mavenHello0.0.1-SNAPSHOTcompile2.2、依賴范圍依賴范圍scope用來(lái)控制依賴和編譯,測(cè)試,運(yùn)行的classpath的關(guān)系.主要的是三種依賴關(guān)系如下:pile:默認(rèn)編譯依賴范圍。對(duì)于編譯,測(cè)試,運(yùn)行三種classpath都有效2.test:測(cè)試依賴范圍。只對(duì)于測(cè)試classpath有效3.provided:已提供依賴范圍。對(duì)于編譯,測(cè)試的classpat

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論