稀小飯初識Maven

Maven

Maven的做用:項目構建,依賴管理。
文章借鑑了菜鳥教程Maven相關的內容,連接爲 Maven教程

一、項目對象模型POM(Project Object Model)

圖片來源於網絡

包含4個部分:html

  • POM關係
  • 構建設置
  • 構建環境
  • 項目信息

二、Maven的生命週期

  • cleanjava

    清除上次構建生成的文件shell

    • 1)pre-clean:執行清理前須要完成的工做
    • 2)clean:清理上一次構建生成的文件
    • 3)post-clean:執行清理後須要完成的工做
  • default服務器

    構建項目,重要的phase以下:網絡

    • 1)validate:驗證工程是否正確,全部須要的資源是否可用。
    • 2)compile:編譯項目的源代碼。
    • 3)test:使用合適的單元測試框架來測試已編譯的源代碼。這些測試不須要已打包和佈署。
    • 4)package:把已編譯的代碼打包成可發佈的格式,好比jar。
    • 5)integration-test:若有須要,將包處理和發佈到一個可以進行集成測試的環境。
    • 6)verify:運行全部檢查,驗證包是否有效且達到質量標準。
    • 7)install:把包安裝到maven本地倉庫,能夠被其餘工程做爲依賴來使用。
    • 8)deploy:在集成或者發佈環境下執行,將最終版本的包拷貝到遠程的repository,使得其餘的開發者或者工程能夠共享。
  • site框架

    創建和發佈項目站點maven

    • 1)`pre-site:生成項目站點以前須要完成的工做
    • 2)`site:生成項目站點文檔
    • 3)post-site:生成項目站點以後須要完成的工做
    • 4)site-deploy:將項目站點發布到服務器

三、Maven倉庫

倉庫:項目所依賴的第三方庫存放的位置
  • 本地(local)
  • 遠程(remote)
  • 中央(central)

搜索順序:本地-->遠程-->中央post

四、項目模板

Maven 使用原型 archetype插件建立自定義的項目結構,造成Maven項目模板。原型即爲一個項目模板,例如要建立一個簡單的helloworld項目,則執行mvn命令使用DarchetypeArtifactId=maven-archetype-quickstart參數,建立原型爲maven-archetype-quickstart的項目。單元測試

五、構建簡單的java項目

mvn archetype:generate

-DgroupId=com.companyname.bank

-DartifactId=consumerBanking

-DarchetypeArtifactId=maven-archetype-quickstart    //項目原型

-DinteractiveMode=false   //是否交互模式,區別於批處理模式

六、引入外部依賴

直接在pom.xml中添加依賴的參數。測試

七、依賴管理

Maven擁有對依賴的傳遞機制,例如B依賴於A,C依賴於B,則C依賴A,maven會管理這種依賴傳遞的關係。

8 、Maven自動化部署

部署步驟

一般在項目的開發的過程當中,部署包括如下步驟:

  • 將項目代碼提交到SVN或者其它代碼庫中並打上標籤;
  • 從SVN下載完整的項目代碼;
  • 使用Maven構建應用;
  • 把構建好的WAR或JAR包文件存儲到經常使用的網絡位置下;
  • 從網絡上獲取文件並部署到生產站點上;
  • 更新文檔和應用版本號。

自動部署

maven-release-plugin插件能夠實現自動部署,部分參數以下:

  • scm配置SVN的路徑,Maven將從該路徑下將代碼取下來。
  • repository構建的WAR或EAR或JAR文件的位置,或者其餘源碼構建成功後生成的構件的存儲位置。
  • plugin配置maven-release-plugin插件來實現自動部署過程。
  • resources:用於排除或包含某些資源文件

九、Maven中POM的3種關係

  • 依賴關係:<dependencies><dependency>標籤;
  • 繼承關係:<parent>標籤,子pom文件能繼承父pom的依賴;
  • 聚合關係:<modules>標籤,將多個maven的項目聚合爲一個大的項目。

十、Maven的屬性

Maven的屬性是值得佔位符,如${X},可用於pom文件任何賦值的位置。

相關文章
相關標籤/搜索