動(dòng)力節(jié)點(diǎn)講義_第1頁(yè)
動(dòng)力節(jié)點(diǎn)講義_第2頁(yè)
動(dòng)力節(jié)點(diǎn)講義_第3頁(yè)
動(dòng)力節(jié)點(diǎn)講義_第4頁(yè)
動(dòng)力節(jié)點(diǎn)講義_第5頁(yè)
已閱讀5頁(yè),還剩71頁(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主講:北京動(dòng)力節(jié)點(diǎn)2目錄第 1 章maven 的用途5簡(jiǎn)介錯(cuò)誤!未定義書(shū)簽。1.1maven 項(xiàng)目中主要應(yīng)用61.2第 2 章Maven 中的概念72.1Pom7pom 文件中節(jié)點(diǎn)含義project72.2.2mVersion82.2.3groupId82.2.4artifactId82.2.5packaging82.2.6version82.2.7name82.2.8url82.2.9description92.2.10dependencies92.2.11build92.2.12parent9Repositories-倉(cāng)庫(kù)官網(wǎng)倉(cāng)庫(kù)地址92.3.

2、2無(wú)倉(cāng)庫(kù)工作示意圖102.3.3有倉(cāng)庫(kù)工作示意圖11第 3 章Maven 環(huán)境搭建18運(yùn)行 Maven 環(huán)境準(zhǔn)備 maven 工具183.1.2準(zhǔn)備 maven 倉(cāng)庫(kù)錯(cuò)誤!未定義書(shū)簽。地址錯(cuò)誤!未定義書(shū)簽。.4配置環(huán)境變量19北京動(dòng)力節(jié)點(diǎn) 13.1.5測(cè)試環(huán)境203.1.6建立工程203.1.7編寫(xiě) pom.xml 配置文件213.1.8編寫(xiě)測(cè)試程序213.1.9編譯程序213.1.10打包程序22程序錯(cuò)誤!未定義書(shū)簽。.12修改本機(jī)倉(cāng)庫(kù)位置293.1.13修改倉(cāng)庫(kù)配置31Eclipse Maven 插件環(huán)境3準(zhǔn)備工具錯(cuò)誤

3、!未定義書(shū)簽。地址錯(cuò)誤!未定義書(shū)簽。.3配置eclipse32第 4 章創(chuàng)建 maven 工程32創(chuàng)建 maven-java 工程324.1創(chuàng)建 maven-web 工程444.2第 5 章插件57編譯插件585.1打包插件5打 jar 包插件585.2.2打 war 包插件58jetty 插件5配置 jetty 插件595.3.2端口與應(yīng)用根路徑錯(cuò)誤!未定義書(shū)簽。5.3.3運(yùn)行 web 工程535.3.4內(nèi)存溢出異常555.3.5關(guān)聯(lián)源碼56打包后最終名稱605.4自定義屬性605.5北京動(dòng)力節(jié)點(diǎn) 2第 6 章依賴錯(cuò)誤!未定義書(shū)簽。依賴的組

4、成groupId錯(cuò)誤!未定義書(shū)簽。6.1.2artifactId錯(cuò)誤!未定義書(shū)簽。6.1.3version錯(cuò)誤!未定義書(shū)簽。6.1.4完整格式13依賴作用域compile錯(cuò)誤!未定義書(shū)簽。6.2.2provided錯(cuò)誤!未定義書(shū)簽。6.2.3runtime錯(cuò)誤!未定義書(shū)簽。6.2.4test錯(cuò)誤!未定義書(shū)簽。6.2.5system錯(cuò)誤!未定義書(shū)簽。獲取依賴地址15搜索166.3.2依賴166.3.3常用依賴176.4工程實(shí)例錯(cuò)誤!未定義書(shū)簽。java 工程實(shí)例錯(cuò)誤!未定義書(shū)簽。6.5.2web 工程實(shí)例錯(cuò)誤!未定義書(shū)簽

5、。第 7 章打包60Eclipse 工程60打 jar 包607.1.2打可執(zhí)行 jar 包627.1.3打 War 包67自定義 jar 包687.1.4Maven 工程6打 jar 包687.2.2打可執(zhí)行 jar 包69北京動(dòng)力節(jié)點(diǎn) 37.2.3打 War 包70自定義 jar 包707.2.4第 8 章項(xiàng)目導(dǎo)入及轉(zhuǎn)換70Maven 項(xiàng)目導(dǎo)入718.1Myeclipse 工程轉(zhuǎn)eclipse 工程728.2Eclipse 轉(zhuǎn) maven738.3Maven 轉(zhuǎn)eclipse738.4第 9 章自定義模板錯(cuò)誤!未定義書(shū)簽。創(chuàng)建 Java 工程模板錯(cuò)誤!未定

6、義書(shū)簽。添加插件錯(cuò)誤!未定義書(shū)簽。9.1.2添加依賴錯(cuò)誤!未定義書(shū)簽。web 工程模板錯(cuò)誤!未定義書(shū)簽。添加插件錯(cuò)誤!未定義書(shū)簽。9.2.2添加依賴錯(cuò)誤!未定義書(shū)簽。9.2.3Web.xml錯(cuò)誤!未定義書(shū)簽。第 10 章附錄:常用命令1210.1mvn compile1210.2mvn clean1210.3mvn package1210.4mvn install1210.5mvn clean install12北京動(dòng)力節(jié)點(diǎn) 第1章 初識(shí) Maven1.1什么是 Maven(摘自百科)Maven 是 Apache 的一個(gè)頂級(jí)的項(xiàng)目:Maven 這個(gè)單詞來(lái)自第緒語(yǔ)

7、(猶太語(yǔ)),意為知識(shí)的積累,最早在 Jakata Turbine項(xiàng)目中它被用來(lái)簡(jiǎn)化項(xiàng)目的構(gòu)建過(guò)程。在 Maven 出現(xiàn)之前,當(dāng)時(shí)有很多項(xiàng)目使用不同的 Ant配置進(jìn)行構(gòu)建,它們的 Ant build 文件僅有細(xì)微的差別,并且將 jar含在版本系統(tǒng)(CVS)中,沒(méi)有一套統(tǒng)一的構(gòu)建工具。如果有一套工具,可以擁有一套標(biāo)準(zhǔn)的方法來(lái)構(gòu)建一個(gè)項(xiàng)目,可以清楚的定義一個(gè)項(xiàng)目是由哪些部分組成的,可以擁有一種簡(jiǎn)單的方法發(fā)布項(xiàng)目的信息,可以在不同的項(xiàng)目之間jar 包。出于這個(gè)目的,Maven 被創(chuàng)造了出來(lái),該項(xiàng)目的清晰定義包括,一種很方便的發(fā)布項(xiàng)目信息的方式,以及一種在多個(gè)項(xiàng)目中共享JAR的方式。Maven 是一個(gè)項(xiàng)

8、目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object M),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(DependencyManagement System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。當(dāng)你使用Maven 的時(shí)候,你用一個(gè)明確定義的項(xiàng)目對(duì)象模型來(lái)描述你的項(xiàng)目,然后 Maven 可以應(yīng)用橫切的邏輯,這些邏輯來(lái)自一組共享的(或者自定義的)插件。Maven 包含一個(gè)生命周期,當(dāng)你運(yùn)行 mvn install 的時(shí)候被調(diào)用。這條命令告訴Maven 執(zhí)行一系列的有序的步驟,直到到達(dá)

9、你指定的生命周期。遍歷生命周期旅途中的一個(gè)影響就是,Maven 運(yùn)行了許多默認(rèn)的插件目標(biāo),這些目標(biāo)完成了像編譯和創(chuàng)建一個(gè) JAR文件這樣的工作。此外,Maven 能夠很方便的幫你管理項(xiàng)目報(bào)告,生成站點(diǎn),管理JAR 文件,等等。北京動(dòng)力節(jié)點(diǎn) 1.2 Maven 項(xiàng)目中主要應(yīng)用l項(xiàng)目構(gòu)建u 什么是構(gòu)建工具?構(gòu)建工具是將軟件項(xiàng)目構(gòu)建相關(guān)的過(guò)程自動(dòng)化的工具。構(gòu)建一個(gè)軟件項(xiàng)目通常包含以下一個(gè)或多個(gè)過(guò)程:·····生成源碼(如果項(xiàng)目使用自動(dòng)生成源碼);從源碼生成項(xiàng)目文檔;編譯源碼;將編譯后的代碼打包成 JAR 文件或者 ZIP 文件;將打包好的代碼安裝到服

10、務(wù)器、倉(cāng)庫(kù)或者其它的地方;有些項(xiàng)目可能需要的過(guò)程才能完成構(gòu)建,這些過(guò)程一般也可以整合到構(gòu)建工具中,因此它們也可以實(shí)現(xiàn)自動(dòng)化。自動(dòng)化構(gòu)建過(guò)程的好處是將手動(dòng)構(gòu)建過(guò)程中犯錯(cuò)的風(fēng)險(xiǎn)降到最低。而且,自動(dòng)構(gòu)建工具通常要比手動(dòng)執(zhí)行同樣的構(gòu)建過(guò)程要快。l文檔管理l生成測(cè)試報(bào)告l解決項(xiàng)目間依賴項(xiàng)l源代碼版本管理及自動(dòng)關(guān)聯(lián)l項(xiàng)目 Releasesl項(xiàng)目的分發(fā)l強(qiáng)制性精確的 jar 包管理ljar 包自動(dòng)l輔助測(cè)試北京動(dòng)力節(jié)點(diǎn) 第2章 Maven 基礎(chǔ)知識(shí)2.1 POMPOM 是指 Project Object M。POM 是一個(gè) xml,在 Maven 里為 pom.xml。是 Maven 工作的基礎(chǔ),在執(zhí)行 t

11、ask 或者 goal 時(shí),Maven 會(huì)去項(xiàng)目根目錄下pom.xml 獲得需要的配置信息。POM 文件中包含了項(xiàng)目的信息和 maven build 項(xiàng)目所需的配置信息,通常有項(xiàng)目信息(如版本、成員)、項(xiàng)目的依賴、插件和 goal、build 選項(xiàng)等。POM 是可以繼承的,通常對(duì)于一個(gè)大型的項(xiàng)目或是多個(gè) module 的情況,子模塊的POM 需要指定父模塊的POM2.1.1POM 文件中節(jié)點(diǎn)含義可以參照 maven 官網(wǎng)上的文檔2.1.2projectPOM 文件的頂級(jí)元素; 任何你想 build 的事物,Maven 都會(huì)把它們當(dāng)作是一個(gè)Project;這些 Project 被定義為 POM(

12、Project Object M);一個(gè) Project 可以依賴其他的 project,一個(gè) project 也可以有多個(gè)子 project 組成北京動(dòng)力節(jié)點(diǎn) 2.1.3mVersion所使用的 object m版本,為了確保穩(wěn)定的使用,這個(gè)元素是強(qiáng)制性的。除非 maven開(kāi)發(fā)者升級(jí)模板,否則不需要修改2.1.4groupId是項(xiàng)目創(chuàng)建團(tuán)體或項(xiàng)目的唯一標(biāo)志符,通常是倒寫(xiě)如:com.bjpowernode 或者com.bjpowernode.p2p2.1.5artifactId是項(xiàng)目 artifact 唯一的基地址名,通常指的是項(xiàng)目名或者模塊名如:p2p 或者 dataservice2.1.6

13、versionartifact 的版本,通常能看見(jiàn)為類似 0.0.1-SNAPSHOT,其中 SNAPSHOT 表示項(xiàng)目開(kāi)發(fā)中,為開(kāi)發(fā)版本2.1.7packagingartifact 打包的方式,如 jar、war、ear 等等。默認(rèn)為 jar。這個(gè)不僅表示項(xiàng)目最終產(chǎn)生何種后綴的文件,也表示build 過(guò)程使用什么樣的 lifecycle。2.1.8name表示項(xiàng)目的展現(xiàn)名,在 maven 生成的文檔中使用2.1.9url表示項(xiàng)目的地址,在 maven 生成的文檔中使用,通常不用北京動(dòng)力節(jié)點(diǎn) 2.1.10 description表示項(xiàng)目的描述,在 maven 生成的文檔中使用2.1.11 de

14、pendencies表示依賴,在子節(jié)點(diǎn) dependencies 中添加具體依賴的groupId、artifactId 和 versionMaven 在搭建工程時(shí)主要是編寫(xiě)依賴。編寫(xiě)依賴就是從官網(wǎng)上2.1.12 build表示 build 配置2.1.13 parent表示父POM2.2Repositories倉(cāng)庫(kù)Repositories 是用來(lái)Artifact 的。如果說(shuō)我們的項(xiàng)目產(chǎn)生的Artifact 是一個(gè)個(gè)小工具,那么 Repositories 就是一個(gè)倉(cāng)庫(kù),里面有我們創(chuàng)建的工具,也可以儲(chǔ)存別人造的工具,我們?cè)陧?xiàng)目中需要使用某種工具時(shí),在POM 中dependency,編譯代碼時(shí)就會(huì)根

15、據(jù)dependency 去工具(Artifact),供使用。對(duì)于的項(xiàng)目完成后可以通過(guò) mvn install 命令將項(xiàng)目放到倉(cāng)庫(kù)(Repositories)中倉(cāng)庫(kù)分 地倉(cāng)庫(kù)和倉(cāng)庫(kù)倉(cāng)庫(kù)是指服務(wù)器上用于Artifact 的倉(cāng)庫(kù),本地倉(cāng)庫(kù)是指本機(jī)Artifact 的倉(cāng)庫(kù),對(duì)于 windows本地倉(cāng)庫(kù)地址用戶的.m2/repository 下面。對(duì)于需要的依賴,在 pom.xml 中添加 dependency 即可,可以在 maven 的倉(cāng)庫(kù)中搜索。2.2.1官網(wǎng)倉(cāng)庫(kù)地址北京動(dòng)力節(jié)點(diǎn) maven 依賴的地方倉(cāng)庫(kù)有也有國(guó)內(nèi)有鏡像2.3Maven 工作原理2.3.1無(wú)倉(cāng)庫(kù)工作原理北京動(dòng)力節(jié)點(diǎn) 2.3.2有

16、倉(cāng)庫(kù)工作原理2.4Maven 的構(gòu)建的生命周期Maven 的構(gòu)建機(jī)制,是生命周期(lifecycle)這個(gè)概念進(jìn)行構(gòu)建的。這意味著構(gòu)建和發(fā)布一個(gè)項(xiàng)目的整個(gè)過(guò)程是預(yù)先被定義了的。采用這種方式進(jìn)行項(xiàng)目構(gòu)建,可以讓用戶在學(xué)習(xí)很少的一部分命令的情況下通過(guò) POM 對(duì)項(xiàng)目進(jìn)行構(gòu)建。Maven 本質(zhì)上是一個(gè)插件框架,它的并不執(zhí)行任何具體的構(gòu)建任務(wù),僅僅定義了抽象的生命周期,所有這些任務(wù)都交給插件來(lái)完成的。將生命周期的階段與插件目標(biāo)互相綁定,就可以在特定的階段完成具體的構(gòu)建任務(wù), Maven 的生命周期是抽象的,這意味著生命周期本身不做任何實(shí)際的工作,在 Maven 的設(shè)計(jì)中,實(shí)際的任務(wù)都交由插件來(lái)完成。生

17、命周期抽象了構(gòu)建的各個(gè)步驟,定義了它們的次序,利用插件機(jī)制具體實(shí)現(xiàn)。每個(gè)構(gòu)建步驟都可以綁定一個(gè)或多個(gè)插件行為。在 Maven 中,內(nèi)建了三種構(gòu)建生命周期:default、clean、site。default 生命周期處理項(xiàng)目的部署,clean 生命周期處理項(xiàng)目構(gòu)建后的工作,site 生命周期對(duì)項(xiàng)目的站點(diǎn)文檔進(jìn)行生成。Maven 的生命周期,又是由不同的階段(phase)的。每一個(gè)生命周期,都包含了一系列的階段,每一個(gè)階段都表示了生命周期中的一個(gè)狀態(tài)。比如,對(duì)于 default 生命周期北京動(dòng)力節(jié)點(diǎn) 來(lái)說(shuō),包含了如下的這些階段:lvalidatelcompile 編譯ltest 測(cè)試lpacka

18、ge 打包運(yùn)行任何檢查,驗(yàn)證包是否有效且達(dá)到質(zhì)量標(biāo)準(zhǔn)lverifyl將項(xiàng)目打包生成的Artifact 放到倉(cāng)庫(kù)中installl發(fā)布deployMaven 在執(zhí)行 default 生命周期的時(shí)候,會(huì)順序執(zhí)行這些階段來(lái)完成不同的工作。2.5 常用命令mvn compile編譯源代碼mvn test運(yùn)試程序mvn clean清除目標(biāo)目錄中的生成結(jié)果mvn package依據(jù)項(xiàng)目生成 jar war 文件mvn install在本地 Repository 中安裝 jarmvn clean install刪除再編譯mvn archetype:genate生成 maven 項(xiàng)目結(jié)構(gòu)2.6 依賴說(shuō)完生命周

19、期,還有一個(gè)必須要說(shuō)的就是依賴管理了。Maven中是通過(guò)在 pom.xml中添加依賴從而來(lái)引入 jar 包的。其原理是:每一個(gè) jar 都會(huì)有的坐標(biāo),Maven 就是通過(guò)坐標(biāo)來(lái)到具體的 jar 的。就好像平面坐標(biāo)系一樣,通過(guò) x 軸 和 y 軸一個(gè)北京動(dòng)力節(jié)點(diǎn) 坐標(biāo)點(diǎn)。Maven 定義了這樣一組規(guī)則:世界上任何一個(gè)構(gòu)件都可以使用 Maven 坐標(biāo)唯一標(biāo)識(shí)。2.6.1Maven 坐標(biāo)組成Ø groupId: 定義當(dāng)前Maven 項(xiàng)目隸屬的實(shí)際項(xiàng)目Ø artifactId: 該元素定義實(shí)際項(xiàng)目中的一個(gè) Maven 項(xiàng)目或模塊Ø version: 該元素定義Maven

20、項(xiàng)目當(dāng)前所處的版本Ø packaging: 該元素定義 Maven 項(xiàng)目的打包方式Ø classifier: 該元素用來(lái)幫助定義構(gòu)建輸出的一些附屬構(gòu)件注:groupId、artifactId、version、packaging 是必須定義的,classifier 是不能被直接定義的,因?yàn)楦綄贅?gòu)件不是項(xiàng)目直接默認(rèn)生成的,而是由附加的插件幫助生成的。Ø 依賴完整格式只要我們提供正確的坐標(biāo)元素,Maven 就能夠找到它2.6.2依賴配置詳解一個(gè)依賴(<dependency>)的可以包含以下元素:北京動(dòng)力節(jié)點(diǎn) 2.6.3依賴作用域(范圍)北京動(dòng)力節(jié)點(diǎn) 2.6.

21、4傳遞性依賴2.6.5獲取依賴有的人可能會(huì)有疑問(wèn),以前沒(méi)有 Maven 的時(shí)候,我們可以去各自的官網(wǎng)jar,但現(xiàn)在只能通過(guò) pomjar。那么如何知道需要添加哪些依賴呢?還有需要什么版本呢?這也是為什么有一部分習(xí)慣了jar,而到了 Maven 這不知道該怎么用了。當(dāng)然,Maven 還不是智能的,你不可能直接命令 Maven 直接給你找項(xiàng)目所需要的各種組件,或許以后這樣的智能化的軟件管理工具會(huì)出現(xiàn),至少現(xiàn)在還沒(méi)有。因此,還得需要你去添加 pom 依賴。至于該如何找,這里我告訴大家一個(gè)方法,雖然方法有點(diǎn)笨,但或許對(duì)你快速到具體組件有所幫助。舉個(gè)例子,假如現(xiàn)在需要添加 Spring 的依賴,但具體哪

22、個(gè)版本呢,可以先不用管,直接去Baidu 或者,以“ maven servlet repository ”為關(guān)鍵字搜索,往往第一個(gè)鏈接中,就是你需要的方案。(1) 地址北京動(dòng)力節(jié)點(diǎn) (2)搜索依賴選擇原則通常為相對(duì)比較新,同時(shí)被使用比較多的正式版(release 版);依賴2.6.6從網(wǎng)頁(yè)中的 maven 選項(xiàng)卡中依賴信息到的 pom.xml 中北京動(dòng)力節(jié)點(diǎn) 當(dāng)然,這只是法,只剛接觸 Maven 的童鞋們。隨著項(xiàng)目經(jīng)驗(yàn)的增多,以后你就會(huì)越來(lái)越發(fā)現(xiàn),Maven的不僅僅是你的雙手,還有你最寶貴的時(shí)間。2.6.7常用依賴參見(jiàn)常用依賴.xml北京動(dòng)力節(jié)點(diǎn) 第3章 Maven 常用命令應(yīng)用3.1標(biāo)準(zhǔn)的

23、maven 目錄結(jié)構(gòu)參照l(shuí)Maven 這個(gè)項(xiàng)目管理和構(gòu)建自動(dòng)化工具,越來(lái)越多的開(kāi)發(fā)使用它來(lái)管理項(xiàng)目中的jar 包。但是對(duì)于我們程序員來(lái)說(shuō),我們最關(guān)心的是它的項(xiàng)目構(gòu)建功能。所以這里我們介紹的就是怎樣用 maven 來(lái)滿足我們項(xiàng)目的日常需要。Maven 使用慣例優(yōu)于配置的原則 。它要求在沒(méi)有定制之前,所有的項(xiàng)目都有如下的結(jié)構(gòu)Maven 默認(rèn)約定了一套目錄結(jié)構(gòu),在通過(guò) Maven 創(chuàng)建了項(xiàng)目以后,項(xiàng)目的目錄結(jié)構(gòu)就是以這套目錄結(jié)構(gòu)作為模板創(chuàng)建的。3.2運(yùn)行 Maven 環(huán)境(compile)參照工程 maven-01準(zhǔn)備 maven 工具3.2.1到 maven 的上,maven,目前我們使用的版本是

24、北京動(dòng)力節(jié)點(diǎn) 目錄目的$basedir項(xiàng)目根目錄,存放 pom.xml 和所有子目錄$basedir/src/main/java存放項(xiàng)目的 java 源代碼$basedir/src/main/resources存放項(xiàng)目的配置文件$basedir/src/main/webapp如果是 web 項(xiàng)目,存放 web$basedir/src/test/java存放測(cè)試類的源代碼$basedir/src/test/resources存放測(cè)試需要的配置文件$basedir/target存放生成的字節(jié)碼文件及打包生成文件等apache-maven-3.3.9-bin.zip 并解壓到 D 盤(pán)根目錄下3.2.

25、2配置環(huán)境變量在 Path 中增加“;%maven_home%/bin”北京動(dòng)力節(jié)點(diǎn) 3.2.3測(cè)試環(huán)境在命令行窗口編寫(xiě)如下命令:mvn version(mvn -v)如果如上圖所示說(shuō)明環(huán)境配置正確3.2.4建立一個(gè) Maven 工程在 D:coursejavaProjects22-maven 目錄下創(chuàng)建 maven-01 目錄,注意:遵循 maven 的目錄結(jié)構(gòu)要求。lpom.xml 是必有的配置文件lsrc 是必有的文件夾lmain 是必有的文件夾里面存放所有的源文件ljava 里存放 java 源代碼文件lresources 存放配置文件ltest 存放測(cè)試代碼.l編譯后還會(huì)生成 tar

26、get 目錄,主要用來(lái)存放編譯后的字節(jié)碼文件以及打包生成的文件等北京動(dòng)力節(jié)點(diǎn) 3.2.5編寫(xiě)pom.xml 配置文件其中的配置信息可以從官網(wǎng)上找到或者從.txt中pom.xml 的內(nèi)容跟 src 放到同一目錄下編寫(xiě)一個(gè) Java 程序3.2.6在 src/main/java/com/bjpowernode/maven 目錄下創(chuàng)建一個(gè)類 HelloMaven.java,其中紅色部分為3.2.7編譯程序啟動(dòng)命令行窗口并轉(zhuǎn)到項(xiàng)目的根目錄下 D:coursejavaProjects22-mavenmaven-01 下執(zhí)行:mvn compile 命令后,執(zhí)行命令前看一下 C:UsersAdminist

27、rator.m2 目錄中是沒(méi)北京動(dòng)力節(jié)點(diǎn) 有任何內(nèi)容的在執(zhí)行命令的過(guò)程中,Maven 會(huì)自動(dòng)編譯過(guò)程中所需要的依賴(需聯(lián)網(wǎng),如果網(wǎng)速不給力的話,會(huì)比較慢), 再去查看C:UsersAdministrator.m2 目錄下會(huì)多一個(gè)叫做repository 的目錄,這就是本地的倉(cāng)庫(kù),默認(rèn)在 C:UsersAdministrator.m2 目錄下,可以修改.同時(shí)將文件生成到classD:coursejavaProjects22-mavenmaven-01targetclassescombjpowernodemaven 目錄下看到上圖說(shuō)明編譯通過(guò)3.3對(duì)上面編寫(xiě)的代碼進(jìn)行單元測(cè)試(test)參照工程

28、maven-01如果要進(jìn)行單元測(cè)試的話,需要使用 Junit 單元測(cè)試的 jar 包,我們使用的 4.10 版本, 也就是說(shuō),我們的這個(gè) Maven 項(xiàng)目,需要依賴于 junit4.10 的 jar 包3.3.1編寫(xiě)測(cè)試類注意:測(cè)試類和被測(cè)試類要求名為 test+被測(cè)試的方法名第一步要一致,測(cè)試類的名字為被測(cè)試類名字+Test,方法l在 D:coursejavaProjects22-mavenmaven-01srctestjavacombjpowernodemaven 目錄下新建 HelloMavenTest.java 源文件北京動(dòng)力節(jié)點(diǎn) l第二步來(lái)到 D:coursejavaProjects

29、22-mavenmaven-01 目錄下,運(yùn)行 mvn test 執(zhí)序,會(huì)出現(xiàn)如下錯(cuò)誤試程是因?yàn)槲覀內(nèi)绻M(jìn)行單元測(cè)試,需要 junit.jar,以前是去 classpath 找,如果使用 Maven,會(huì)去倉(cāng)庫(kù)中找。需要在 pom.xml 文件中加如下配置加完之后,再執(zhí)行 maven test,會(huì)發(fā)現(xiàn)還會(huì)執(zhí)行 downloading 操作,而且會(huì)將junit依賴的 hamcrest 的 jar 包也下來(lái)放到本地倉(cāng)庫(kù)中,成之后,會(huì)發(fā)現(xiàn)報(bào)錯(cuò)了,因?yàn)槲覀兊膶?shí)際值和期望值不匹配北京動(dòng)力節(jié)點(diǎn) 如果要查看更詳細(xì)的錯(cuò)誤信息,可以到D:coursejavaProjects22-mavenmaven-01targ

30、etsurefire-reports 查看錯(cuò)誤日志。3.3.2修改測(cè)試類中的代碼,讓實(shí)際值和期望值相等切換到項(xiàng)目根目錄 D:coursejavaProjects22-mavenmaven-01 下,執(zhí)行 maven test北京動(dòng)力節(jié)點(diǎn) 測(cè)試通過(guò)3.4 清空 target 內(nèi)容(clean)在命令行輸入mvn clean 命令觀察到 maven-01 目錄 target 目錄被刪除:說(shuō)明編譯和打包后的文件都被掉了3.5通過(guò)命令打包程序(package)如果現(xiàn)在 maven-01 是一個(gè)完整的功能,已經(jīng)開(kāi)發(fā)完畢,需要將這些代碼給其它開(kāi)發(fā)人員使用,那么需要將我們 maven-01 項(xiàng)目的代碼進(jìn)行打

31、包,在實(shí)際開(kāi)發(fā)的過(guò)程中,如果是普通的 java 項(xiàng)目,打 jar 包;如果是web 項(xiàng)目,打 war 包。切換到項(xiàng)目根目錄 D:coursejavaProjects22-mavenmaven-01 下,在命令行輸入 mvnpackage 命令觀察到在 D:coursejavaProjects22-mavenmaven-01target 目錄下多了一個(gè) maven-01-1.0.jar生成的 jar 包名規(guī)則 artifactId-version.jar3.6在其它工程中maven-01 生成的 jar 包(install)參照 maven-02北京動(dòng)力節(jié)點(diǎn) 第一步按照標(biāo)準(zhǔn)的 maven 目錄結(jié)

32、構(gòu)創(chuàng)建一個(gè) maven 項(xiàng)目 maven-02第二步執(zhí)行 mvn compile,提示找不到 HelloMaven 類,是我們?cè)?TestInstall 類中了HelloMaven 類,而且 HelloMaven 這個(gè)類在 maven-01 工程中,所以我們可以說(shuō)maven-02 工程依賴 maven-01 生成的 jar,在 maven-01 中 jar 包已經(jīng)生成了,但是我們還沒(méi)有建立依賴關(guān)系第三步在 maven-02 下的 pom。Xml 文件中加如下代碼執(zhí)行 mvn compile,依然會(huì)報(bào)錯(cuò),而且會(huì)倉(cāng)庫(kù)maven-01北京動(dòng)力節(jié)點(diǎn) 第四步這個(gè)時(shí)候雖然 maven-01 已經(jīng)打包完成,

33、但是在本地的倉(cāng)庫(kù)還沒(méi)有這個(gè) jar 包,索引在maven-01 工程根目錄下執(zhí)行 mvn install 命令,將打好的 jar 包放到本地倉(cāng)庫(kù)中。這個(gè)命令后會(huì)發(fā)現(xiàn)在本地倉(cāng)庫(kù)的位置,多了以下內(nèi)容第五步在 maven-02 工程下執(zhí)行mvn compile3.7 使用 Maven 命令創(chuàng)建 Maven 工程(mvn archetype:generate)在 D:coursejavaProjects22-maven 目錄下執(zhí)行,首先會(huì)該插件需要的相關(guān) jar 包,放到本地倉(cāng)庫(kù)中, 然后按照提示輸入 groupId , artifactId , 以及 version 會(huì)在 D:coursejavaP

34、rojects22-maven 目錄下生成一個(gè) maven 工程 maven-03北京動(dòng)力節(jié)點(diǎn) 北京動(dòng)力節(jié)點(diǎn) 但是這個(gè)命令很慢,大家下去練習(xí)的時(shí)候了解第4章 修改倉(cāng)庫(kù)位置4.1 修改本機(jī)倉(cāng)庫(kù)位置安裝好 maven 后,本機(jī)倉(cāng)庫(kù)的默認(rèn)位置為 C:UsersAdministrator.m2repository 下,但是我們可以對(duì)其進(jìn)行修改。用文本編輯器打開(kāi) D:apache-mavenconf settings.xml查找到如下內(nèi)容將其到注釋外面并修改成北京動(dòng)力節(jié)點(diǎn) 轉(zhuǎn)移倉(cāng)庫(kù)位置:將當(dāng)前用戶下的 repository 移動(dòng)到 D 盤(pán)根目錄下移動(dòng)前:移動(dòng)后:北京動(dòng)力節(jié)點(diǎn) 使用mvnversion 命

35、令測(cè)試修改是否4.2 修改倉(cāng)庫(kù)配置Maven默 認(rèn) 的倉(cāng) 庫(kù), 地 址 可 以在-builder-3.3.9.jar 包中的 pom-4.0.0.xml 文件中找到。D:apache-mavenlibmaven-m北京動(dòng)力節(jié)點(diǎn) 如果想修改位置:只需用文本編輯器打開(kāi) D:apache-maven-3.3.9confsettings.xml查找到<mirrors>的位置將<mirror>移到注釋以外,之后修改里面的內(nèi)容,參見(jiàn)maven 鏡像.xml如果團(tuán)隊(duì)配置了倉(cāng)庫(kù),只需將<mirror>修改成地址。新到一個(gè)團(tuán)隊(duì)后也可以向同事索取一份 settings.xml

36、查看倉(cāng)庫(kù)地址第5章 使用 Eclipse 創(chuàng)建 maven 工程5.1 搭建Eclipse Maven 插件環(huán)境如果是高版本的 Eclipse 內(nèi)置 maven 插件,如果是低版本的 Eclipse 需要手動(dòng) 安裝 M2Eclipse插件。實(shí)際開(kāi)發(fā)中也只使用插件即可,以命令行方式使用 maven. 我們目前eclipse 版本為 neon,自帶了 maven 插件第一步修改工作空間字符集編碼方式為 UTF-8北京動(dòng)力節(jié)點(diǎn) 第二步修改字體大小北京動(dòng)力節(jié)點(diǎn) 第三步修改創(chuàng)建 jsp 文件默認(rèn)的編碼方式北京動(dòng)力節(jié)點(diǎn) 第四步配置eclipse 使用的 Maven 版本北京動(dòng)力節(jié)點(diǎn) 第五步執(zhí)行 Maven

37、 本地倉(cāng)庫(kù)位置以及settings.xml 配置文件北京動(dòng)力節(jié)點(diǎn) 5.2 創(chuàng)建 maven-java 工程第一步創(chuàng)建一個(gè) Maven 工程北京動(dòng)力節(jié)點(diǎn) 北京動(dòng)力節(jié)點(diǎn) 北京動(dòng)力節(jié)點(diǎn) 第二步刪除如下目錄及下面的文件第三步補(bǔ)充缺少的 resources 目錄:在 src/main 下建立 resource 目錄第四步如果出現(xiàn)如下錯(cuò)誤提示,一般是由于工程沒(méi)有實(shí)時(shí)同步引起的北京動(dòng)力節(jié)點(diǎn) 選中工程右鍵 MavenàUpdate Project解決方式一解決方式二選中錯(cuò)誤提示右鍵,Quick Fix第五步這里還有一個(gè)警告,因?yàn)槭褂?Maven 默認(rèn)創(chuàng)建的項(xiàng)目 Eclipse 使用的 JRE 是 1

38、.5選中工程,右鍵>Properties北京動(dòng)力節(jié)點(diǎn) 將 JRE 版本替換為 1.8第六步修改 pom.xml 文件中 junit 的版本為 4.10,刪除掉 name 和 url 配置(可選)第七步創(chuàng)建 HelloMaven04.java 類北京動(dòng)力節(jié)點(diǎn) 第八步選中工程右鍵執(zhí)行 test 或者 clean 進(jìn)試,在執(zhí)行 clean 的時(shí)候,發(fā)現(xiàn) target 的目錄一致都會(huì)存在,是因?yàn)樵趀clipse 中勾選了 Build Automatically北京動(dòng)力節(jié)點(diǎn) 5.3 創(chuàng)建 maven-web 工程5.3.1使用tomcat 部署項(xiàng)目第一步打開(kāi)創(chuàng)建工程向?qū)缦聢D所示北京動(dòng)力節(jié)點(diǎn) 北京

39、動(dòng)力節(jié)點(diǎn) 北京動(dòng)力節(jié)點(diǎn) 第二步補(bǔ)充缺少的 test 目錄,java 目錄,分析比普通的 java 工程多了一個(gè)webapp北京動(dòng)力節(jié)點(diǎn) 第三步修改Eclipse 中 jre 版本第四步配置 tomcat 運(yùn)行環(huán)境北京動(dòng)力節(jié)點(diǎn) 第五步創(chuàng)建一個(gè)新的 server北京動(dòng)力節(jié)點(diǎn) 第六步使用以前的方式發(fā)布到 tomcat 中運(yùn)行5.3.2分析目前工程中存在問(wèn)題(1) 打開(kāi)web.xml 文件,默認(rèn)通過(guò) Maven 創(chuàng)建的web 項(xiàng)目JavaEE版本使用的是 2.3,我們修改修改為 3.1第一步修改 web.xml 文件的配置,使用 Eclipse 創(chuàng)建一個(gè)動(dòng)態(tài)的 web 項(xiàng)目,從中拷貝 web.xml文

40、件的約束信息第二步選中工程右鍵 PropertiesàProject Facets,目前這里使用的還是 2.3 和 1.5,這里設(shè)置的是 Maven 插件的版本,不是 eclipseIDE 的版本北京動(dòng)力節(jié)點(diǎn) 第三步在 navigator 的 視 圖 下找到項(xiàng)目下的.setting 文件夾,打開(kāi)文件 ject.facet.core.xml, 將 jdk 從 1.5 修改為 1.8, jst.web 修改成 3.1第四步選中工程右鍵PropertiesàProjectFacets查看效果北京動(dòng)力節(jié)點(diǎn) (2) index.jsp 報(bào)錯(cuò)是缺少servlet 和 js

41、p 的 API解決辦法,在 pom.xml 文件中加入相關(guān)的依賴北京動(dòng)力節(jié)點(diǎn) 5.3.3使用 jetty 插件運(yùn)行web 工程在 pom.xml 文件中將常用的四個(gè)插件配置上,參照插件章節(jié)內(nèi)容北京動(dòng)力節(jié)點(diǎn) 操作步驟:l打開(kāi) run configurations窗口l雙擊 Mavne Build 菜單新建一個(gè)運(yùn)行項(xiàng),默認(rèn)為 new configurationsl修改運(yùn)行項(xiàng)名稱l單擊 Browse workspace 按鈕,選擇要運(yùn)行的 maven-web 工程l在 Goals 框中輸入:jetty:runl單擊 run 按鈕即可運(yùn)行 web 工程l跟 tomcat 一樣可以采用運(yùn)行方式與調(diào)試方式

42、l要停止工程只須單擊 console 窗口上的停止按鈕即可l一個(gè)工程只能運(yùn)行一次l多次運(yùn)行會(huì)導(dǎo)致端口被占用異常,全部停止后重新運(yùn)行即可北京動(dòng)力節(jié)點(diǎn) 5.3.4如何去掉 maven 的WARNING Using platform encoding (UTF-8actually) to copy filter需要在<project>中添加<properties>5.3.5內(nèi)存溢出異常在 JRE 選項(xiàng)卡中找到 VMarguments 輸入框粘貼如下內(nèi)容可減少內(nèi)存溢出次數(shù):北京動(dòng)力節(jié)點(diǎn) 5.3.6關(guān)聯(lián)源碼如果在程序調(diào)試過(guò)程中出現(xiàn)無(wú)法關(guān)聯(lián)源碼現(xiàn)象,需在運(yùn)行配置窗口中的source

43、(源碼)選項(xiàng)卡中填加 workspace(工作空間)選項(xiàng)北京動(dòng)力節(jié)點(diǎn) 第6章 插件是一個(gè)執(zhí)行插件的框架,每一個(gè)任務(wù)實(shí)際上是由插件完成的。Maven插件通常用于:Maven·創(chuàng)建jar 文件·創(chuàng)建war 文件·編譯代碼文件Jetty 插件等等·所有插件只需從.txt中北京動(dòng)力節(jié)點(diǎn) 6.1 編譯插件6.2 打包插件6.2.1打 jar 包插件6.2.2打 war 包插件北京動(dòng)力節(jié)點(diǎn) 6.3jetty 插件jetty 插件提供Web 應(yīng)用運(yùn)行環(huán)境,用來(lái)替代的 tomcat 中間件配置 jetty 插件6.3.1l版本 8.5.1 存在 web.xml 中 welcome 配置不起作用的 bugl版本 9.3.7 解決了這個(gè) bug,但要求必須是 jdk1.8lJetty 插件只能配置一個(gè)北京動(dòng)力節(jié)點(diǎn) 6.4 打包后最終名稱該在 build中,用來(lái)自定義打包后的 jar 或war 文件的名稱6.5 自定義屬性該位于頂層下,里面可存放多個(gè)自定義屬性,常用來(lái)定義公共的版本信息第7章 打包7.1Eclipse 工程打 jar 包7.1.1l右擊工程à選擇 exportà輸入 jar

溫馨提示

  • 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)論