05.maven的相關概念


maven的相關概念

maven座標

maven擁有大量組件。定位一個組件的時候,需要一系列的元素來準確的找到該組件。此時,maven座標應運而生。

Maven座標主要組成:

  • groupId定義當前Maven項目隸屬的實際項目。

  • artifactId定義MavenMaven項目的項目名稱

  • version定義Maven項目的版本

  • packaging定義Maven項目打包的方式(非必須)

  • classifier輔助助定義組件輸出的一些附件(非必須)

在通過原型創建的Java web項目中我們看到的dependencies節點:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

dependency節點通過groupId,artifactId,version準確引用了項目所需要的junit包

倉庫

倉庫用來統一存儲所有Maven共享組件

maven倉庫分爲本地倉庫遠程倉庫兩類:

本地倉庫

每個用戶只有一個本地倉庫,默認是在~/.m2/repository/(~爲用戶目錄),此目錄可以配置:

修改方法:

修改%MAVEN_HOME%/conf/setting.xml, 將文件中的

<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->

修改爲:

<localRepository>文件存儲路徑</localRepository>

遠程倉庫

當建立一個maven項目後,運行mvn clean package時,我們看看到了許多的Downloading:

[INFO] Generating project in Batch mode
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-j2ee-simple/1.0/maven-archetype-j2ee-simple-1.0.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-j2ee-simple/1.0/maven-archetype-j2ee-simple-1.0.jar (9 KB at 4.3 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-j2ee-simple/1.0/maven-archetype-j2ee-simple-1.0.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-j2ee-simple/1.0/maven-archetype-j2ee-simple-1.0.pom (549 B at 1.2 KB/sec)
[INFO] ----------------------------------------------------------------------------

這是maven在從中央倉庫下載項目所需要的jar包。

maven默認的中央倉庫的定義是在${M2_HOME}/lib/maven-2.0.10-uber.jar中。此包中包含一個路徑爲\org\apache\maven\project\pom-4.0.0.xml的文件文件,在這個文件裏面定義了默認中央倉庫的地址:

<repositories>
    <repository>
        <id>central</id>
        <name>Maven Repository Switchboard</name>
        <layout>default</layout>
        <url>http://repo1.maven.org/maven2</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

默認倉庫組件搜索:組件搜索

maven插件

maven的核心僅僅定義了抽象的生命週期,具體的任務都是交由插件完成的。

每個插件都能實現多個功能,每個功能就是一個插件目標

maven的生命週期與插件目標相互綁定,以完成某個具體的構建任務,例如compile就是插件maven-compiler-plugin的一個插件目標。


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