Maven介紹

Apache Maven是一個軟件項目管理和綜合工具。基於項目對象模型(POM)的概念,Maven可以從一箇中心資料片管理項目構建,報告和文件。

本教程將介紹如何使用Maven在Java開發,或任何其他的編程語言的任何項目。

Maven是什麼?

Maven是一個項目管理和綜合工具。Maven提供了開發人員構建一個完整的生命週期框架。開發團隊可以自動完成項目的基礎工具建設,Maven使用標準的目錄結構和默認構建生命週期。

在多個開發團隊環境時,Maven可以設置按標準在非常短的時間裏完成配置工作。由於大部分項目的設置都很簡單,並且可重複使用,Maven讓開發人員的工作更輕鬆,同時創建報表,檢查,構建和測試自動化設置。

Maven提供了開發人員的方式來管理:

  • Builds

  • Documentation

  • Reporting

  • Dependencies

  • SCMs

  • Releases

  • Distribution

  • mailing list

概括地說,Maven簡化和標準化項目建設過程。處理編譯,分配,文檔,團隊協作和其他任務的無縫連接。 Maven增加可重用性並負責建立相關的任務。

Maven歷史

Maven最初設計,是以簡化Jakarta Turbine項目的建設。在幾個項目,每個項目包含了不同的Ant構建文件。 JAR檢查到CVS。

Apache組織開發Maven可以建立多個項目,發佈項目信息,項目部署,在幾個項目中JAR文件提供團隊合作和幫助。


Maven目標

Maven主要目標是提供給開發人員:

  • 項目是可重複使用,易維護,更容易理解的一個綜合模型。

  • 插件或交互的工具,這種聲明性的模式。

Maven安裝和配置

Maven資源庫

Maven 位置,中央和遠程存儲庫配置和解釋,有些術語可能需要在 Maven 使用前理解。

  1. Maven本地資源庫

    Maven的本地資源庫是用來存儲所有項目的依賴關係(插件jar和其他文件,這些文件被Maven下載)到本地文件夾。很簡單,當你建立一個Maven項目,所有相關文件將被存儲在你的Maven本地倉庫。

    默認情況下,Maven的本地資源庫默認爲 .m2 目錄文件夾:

    1. Unix/Mac OS X – ~/.m2
    2. Windows – C:\Documents and Settings\{your-username}\.m2
    更新Maven本地資源庫

        通常情況下,可改變默認的 .m2 目錄下的默認本地存儲庫文件夾到其他更有意義的名稱,例如, maven-repo

    找到 {M2_HOME}\conf\setting.xml, 更新 localRepository 到其它名稱。
    {M2_HOME}\conf\setting.xml

    <settings><!-- localRepository
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: ~/.m2/repository
      <localRepository>/path/to/local/repo</localRepository>
      --><localRepository>F:\apache-maven\repository</localRepository>
  2. Maven中央存儲庫

    當你建立一個 Maven 的項目,Maven 會檢查你的 pom.xml 文件,以確定哪些依賴下載。首先,Maven 將從本地資源庫獲得 Maven 的本地資源庫依賴資源,如果沒有找到,然後把它會從默認的 Maven 中央存儲庫 – http://repo1.maven.org/maven2/ 查找下載。

    Maven 的中央資源庫網站是這樣的:

    Maven中心儲存庫網站已經改版本,目錄瀏覽可能不再使用。這將直接被重定向到 http://search.maven.org/。這就好多了,現在有一個搜索功能:

    PS:目錄瀏覽功能被禁用,但是,當你建立 Maven 的項目,它仍然會從 “http://repo1.maven.org/maven/” 得到依賴, 您可以從 Maven 驗證輸出。

如何從Maven遠程庫下載

根據 Apache Maven 的說明:

Downloading in Maven is triggered by a project declaring a dependency that is not present in the local repository (or for a SNAPSHOT, when the remote repository contains one that is newer). By default, Maven will download from the central repository.

在Maven中,當你聲明的庫不存在於本地存儲庫中,也沒有不存在於Maven中心儲存庫,該過程將停止並將錯誤消息輸出到 Maven 控制檯。

org.jvnet.localizer 只適用於 Java.net資源庫

pom.xml


<dependency>
        <groupId>org.jvnet.localizer</groupId>
        <artifactId>localizer</artifactId>
        <version>1.8</version>
</dependency>
聲明Java.net資源庫

告訴 Maven 來獲得 Java.net 的依賴,你需要聲明遠程倉庫在 pom.xml 文件這樣:

pom.xml


 <repositories>
	<repository>
	    <id>java.net</id>
	    <url>https://maven.java.net/content/repositories/public/</url>
	</repository>
    </repositories>


現在,Maven的依賴庫查詢順序更改爲:

  1. 在 Maven 本地資源庫中搜索,如果沒有找到,進入第 2 步,否則退出。
  2. 在 Maven 中央存儲庫搜索,如果沒有找到,進入第 3 步,否則退出。
  3. 在java.net Maven的遠程存儲庫搜索,如果沒有找到,提示錯誤信息,否則退出。

Maven依賴機制

  1. 你需要知道 log4j 的 Maven 座標,例如:
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.14</version>
  2. 它會自動下載 log4j 的1.2.14 版本庫。如果“version”標籤被忽略,它會自動升級庫時當有新的版本時。

  3. 聲明 Maven 的座標轉換成 pom.xml 文件。
    <dependencies>
        <dependency>
    	<groupId>log4j</groupId>
    	<artifactId>log4j</artifactId>
    	<version>1.2.14</version>
        </dependency>
    </dependencies>
  4. 當 Maven 編譯或構建,log4j 的 jar 會自動下載,並把它放到 Maven 本地存儲庫
  5. 所有由 Maven 管理

當建立一個Maven的項目,pom.xml文件將被解析,如果看到 log4j 的 Maven 座標,然後 Maven 按此順序搜索 log4j 庫:

  1. 在 Maven 的本地倉庫搜索 log4j 
  2. 在 Maven 中央存儲庫搜索 log4j
  3. 在 Maven 遠程倉庫搜索 log4j(如果在 pom.xml 中定義)

Maven 依賴庫管理是一個非常好的工具,爲您節省了大量的工作。

如何找到 Maven 座標?
訪問 Maven 中心儲存庫,搜索下載您想要的jar。

Maven參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章