Maven(二)Maven項目的創建(命令、myeclipse)及生命周期


上一篇給大家介紹了Maven的概念和倉庫的一些信息,接下來給大家分享一下使用命令和MyEclipse創建Maven項目

一、使用命令管理Maven項目

1.1、創建Maven java項目

  1)創建一個文件夾(MavenProject)——>該文件夾下按shift+右擊選擇在此處打開命令窗口——>這樣創建的maven[java]項目就在該文件夾下

  2)命令:mvn archetype:generate -DgroupId=com.zyh.maven.quickstart -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart

    mvn:核心命令

    archetype:create:創建項目,現在maven高一點的版本都棄用了create命令而使用generate命令了。

    -DgroupId=com.zyh.maven.quickstart :創建該maven項目時的groupId是什么,該作用在上面已經解釋了。一般使用包名的寫法。因為包名是用公司的域名的反寫,獨一無二

    -DartifactId=simple:創建該maven項目時的artifactId是什么,就是項目名稱

    -DarchetypeArtifactId=maven-archetype-quickstart:表示創建的是[maven] java項目

  3)運行的前提:需要聯網,必須上網下載一個小文件

    

  4)運行成功后

    

  在D:\MavenProject下就會生成一個MavenJava的文件,該文件就是我們的maven java項目

    

1.2、創建Maven Web項目

  1)命令:mvn archetype:generate -DgroupId=com.zyh.maven.quickstart -DartifactId=MyWebApp -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot

     其他都差不多,創建maven web項目的話 -DarchetypeArtifactId=maven-archetype-webapp 比創建java項目多了一個 -Dversion=0.01-snapshot.

    在創建java項目的時候也可以加上這個,如果不寫,會默認幫我們加上1.0-snapshot。

    

  2)在D:\MavenProject下就會生成一個MyWebApp的文件,該文件就是我們的maven web項目

    

  3)Maven Web項目結構

    

1.3、命令操作Maven java或Web項目

注意:使用命令時,必須在maven java項目的根目錄下,及可以看到pom.xml

  1)編譯:mvn compile  --src/main/java目錄java源碼編譯生成class (target目錄下)

    

    編譯成功之后,可以看到MavenJava項目的根目錄下多了一個【target】文件夾,這個文件夾就是編譯成功之后Maven幫我們生成的文件夾,

    打開【target】文件夾,可以看到里面有一個【classes】文件夾,【classes】文件夾中存放的就是Maven我們編譯好的java類。

    

  2)測試:mvn test    --src/test/java 目錄編譯

    測試成功之后,可以看到MavenJava項目的根目錄下多了一個【target】文件夾,這個文件夾就是測試成功之后Maven幫我們生成的文件夾,

    打開【target】文件夾,可以看到里面有一個【classes】和【test-classes】文件夾

    

 

  3)打包:mvn package  --生成壓縮文件:java項目#jar包;web項目#war包,也是放在target目錄下

    描述:將maven java項目打包上傳到本地倉庫供別人調用

    

    打包成功之后,可以看到MavenJava項目的根目錄下的【target】文件夾中多了一個MavenJava-1.jar,這個MavenJava-1.jar就是打包成功之后Maven幫我們生成的jar文件

    

 

  4)安裝:mvn install   --將壓縮文件(jar或者war)上傳到本地倉庫

    

    安裝成功之后,首先會在MavenJava項目的根目錄下生成【target】文件夾,打開【target】文件夾,可以看到里面會有MavenJava-1.jar,這個MavenJava-1.jarr就是安裝成功之后Maven幫我們生成的jar文件。

    除此之外,在我們存放Maven下載下來的jar包的倉庫也會有一個Hello-0.0.1-SNAPSHOT.jar,所以Maven安裝項目的過程,實際上就是把項目進行【清理】→【編譯】→【測試】→【打包】,再把打包好的jar放到我們指定的存放jar包的Maven倉庫中

    在本地倉庫中查看是否有該項目

    

    通過在本地倉庫中的目錄可以發現為什么通過groupId、artifactId、version可以定位到倉庫中得jar包,也可以知道為什么groupId要使用公司域名的反寫(因為這樣唯一,不會與別的項目重名導致查找到的內容不精確)

  5)清理:mvn clean    --刪除target目錄,也就是將class文件等刪除

  6)部署|發布:mvn deploy  --將壓縮文件上傳私服

  7)組合使用Maven命令

    maven的編譯,清理,測試,打包,部署命令是可以幾個命令同時組合起來使用的,常用的命令組合如下:

    mvn clean compile(先清理在打包)

    mvn clean install

    mvn clean test

    mvn clean package

二、使用MyEclipse創建Maven項目

使用myeclpse創建項目前,需要在myeclipse中配置maven的一些信息 比如:配置本地倉庫、安裝自定義maven(myeclipse中高版本自帶了maven)等。

寫一篇我將介紹怎么在myeclipse、eclipse和idea中配置Maven

2.1、創建Maven java項目

  1)選擇maven project,如果右鍵新建沒有,通過other獲得

  2)創建一個簡單的項目

    

  3)設置項目參數,創建java項目

    

    

  4)創建java項目結果

    

2.2、創建Maven web項目

  1)前面的第一和第二步都是一樣的

  2)設置項目參數,其他一樣,選擇打包方式不一樣。

    

  3)創建web項目結果

    

  4)pom.xml文件出錯

    

    修改

    

 

  5)更新項目

    項目右擊選擇Maven4MyEclipse

    

2.3、創建Maven項目

  1)前兩步和上面的是一樣的

  2)設置項目參數,其他一樣,選擇打包方式不一樣。

    

  3)結果

    

  maven項目一般沒用,在開發中將一個項目拆分成多個項,就需要使用maven項目(pom項目)將其他子項目進行整合。

2.4、myeclipse的Maven操作

  

三、Maven的生命周期

  Maven生命周期就是為了對所有的構建過程進行抽象和統一,包括項目清理,初始化,編譯,打包,測試,部署等幾乎所有構建步驟

  Maven有三套相互獨立的生命周期,請注意這里說的是"三套",而且"相互獨立",這三套生命周期分別是:

    1)Clean Lifecycle 在進行真正的構建之前進行一些清理工作。

    2)Default Lifecycle 構建的核心部分,編譯,測試,打包,部署等等。

    3)Site Lifecycle 生成項目報告,站點,發布站點。

  再次強調一下它們是相互獨立的,你可以僅僅調用clean來清理工作目錄,僅僅調用site來生成站點。當然你也可以直接運行 mvn clean install site 運行所有這三套生命周期

3.1、clean生命周期

  clean生命周期每套生命周期都由一組階段(Phase)組成,我們平時在命令行輸入的命令總會對應於一個特定的階段。比如,運行mvn clean ,這個的clean是Clean生命周期的一個階段。有Clean生命周期,也有clean階段。

  Clean生命周期一共包含了三個階段:

    1)pre-clean 執行一些需要在clean之前完成的工作

    2)clean 移除所有上一次構建生成的文件

    3)post-clean 執行一些需要在clean之后立刻完成的工作

  "mvn clean" 中的clean就是上面的clean,在一個生命周期中,運行某個階段的時候,它之前的所有階段都會被運行,也就是說,"mvn clean"等同於 mvn pre-clean clean ,

  如果我們運行 mvn post-clean ,那么 pre-clean,clean 都會被運行。這是Maven很重要的一個規則,可以大大簡化命令行的輸入。

3.2、Default生命周期

  Default生命周期是Maven生命周期中最重要的一個,絕大部分工作都發生在這個生命周期中。這里,只解釋一些比較重要和常用的階段:  

 validate generate-sources process-sources generate-resources process-resources 復制並處理資源文件,至目標目錄,准備打包。  compile 編譯項目的源代碼。 process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources 復制並處理資源文件,至目標測試目錄。 test-compile 編譯測試源代碼。 process-test-classes test 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署。 prepare-package  package 接受編譯好的代碼,打包成可發布的格式,如 JAR 。 pre-integration-test integration-test post-integration-test verify  install 將包安裝至本地倉庫,以讓其它項目依賴。 deploy 將最終的包復制到遠程的倉庫,以讓其它開發人員與項目共享。

 

 

  運行任何一個階段的時候,它前面的所有階段都會被運行,這也就是為什么我們運行mvn install 的時候,代碼會被編譯,測試,打包。此外,Maven的插件機制是完全依賴Maven的生命周期的,因此理解生命周期至關重要。

3.3、Site生命周期

  Site生命周期pre-site 執行一些需要在生成站點文檔之前完成的工作

    1)site 生成項目的站點文檔

    2)post-site 執行一些需要在生成站點文檔之后完成的工作,並且為部署做准備

    3)site-deploy 將生成的站點文檔部署到特定的服務器上

  這里經常用到的是site階段和site-deploy階段,用以生成和發布Maven站點,這可是Maven相當強大的功能,Manager比較喜歡,文檔及統計數據自動生成,很好看。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM