Maven入門

Maven入門

  • 1.1 介紹
    Maven是一個採用純Java編寫的開源項目管理工具,Maven採用了一種被稱之爲Project Object Model(POM)概念來管理項目,所有的項目配置信息都被定義在一個叫做POM.xml的文件中,通過該文件Maven可以管理項目的整個生命週期,包括清除、編譯、測試,報告、打包,部署等

    好處:
    節省程序員的時間與精力,開發人員主要任務是關注商業邏輯並實現它,而不是把時間浪費在學習如何在不同的環境中去依賴jar包,項目部署等。

  • 1.2
    Maven能夠做什麼
    1 Jar的聲明式依賴性管理
    2 項目自動構建

  • 1.3 Maven 目錄分析
    bin: 含有mvn運行的腳本
    boot: 含有plexus-classworlds類加載器框架
    conf: 含有settings.xml配置文件
    lib: 含有Maven運行時所需要的java類庫
    Settings.xml中默認的用戶庫: ${user.home}/.m2/repository
    Maven默認倉庫下載地址: maven 的lib目錄下 maven-model-builder-3.0.4.jar的pom.xml中

  • 1.4 第一個Maven演示
    項目目錄結構:
    Hello
    –src
    —–main
    ———-java –用來存放Java文件
    ———-resources –用來存放資源文件
    —–test
    ———java –用來存放測試的Java文件
    ———resources
    –target –項目輸出位置,編譯完畢後自動生成
    –pom.xml – 項目對象模型的描述 ,它是maven配置的核心

    1. 4.1 建立pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!-- 當前pom的版本號 -->
  <modelVersion>4.0.0</modelVersion>
<!—grounpId, artifactId, version用來定義打包文件座標-->
  <!-- groupId:當前項目所在的組;組名一般是關的包名 當前jar所屬的命名空間 -->
  <groupId>cn.it.maven</groupId>
  <!-- 當前項目模塊名稱 -->
  <artifactId>Hello</artifactId>
  <!-- 當前項目的版本, SNAPSHOT鏡像版,一般用於開發等不穩定 版本 -->
  <version>0.0.1-SNAPSHOT</version>
    <!-- 當前模塊需要依賴的相關jar包,也稱爲依賴管理, 所有被依賴的包都是通過"座標"定位的 -->
    <dependencies>
        <!-- 需要依賴junit 通過 groupId+artifactId+version來查找,如果本地沒有則到中央倉庫下載 -->
        <dependency>
            <!-- 當前jar所屬的命名空間 -->
            <groupId>junit</groupId>
            <!-- 依賴的項目模塊的名稱 -->
            <artifactId>junit</artifactId>
            <!-- 依賴的版本號 -->
            <version>4.9</version>
            <!-- 依賴的範圍, 有 test compile privlege -->
            <scope>test</scope>
        </dependency>

1.4.2 創建Java類與測試類
- 在src/main/java/cn/it/maven目錄下新建文件Hello.java

    package cn.it.maven;
public class Hello {
    public String sayHello(String name){
        return "Hello "+name+"!";
    }
}
  • 在/src/test/java/cn/it/maven目錄下新建測試文件HelloTest.java
package cn.it.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
    @Test
    public void testHello(){
        Hello hello = new Hello();
        String results = hello.sayHello("litingwei");
        assertEquals("Hello litingwei!",results);       
    }
}
  • 1.5. 命令測試
    打開cmd命令行, 進入Hello項目根目錄執行mvn compile命令, 查看根目錄變化
    cmd 中繼續錄入mvn clean命令,然後再次查看根目錄變化
    cmd 中錄入 mvn clean compile命令, 查看根目錄變化
    cmd 中錄入 mvn clean test命令,查看根目錄變化
    cmd 中錄入 mvn clean package命令,查看根目錄變化 打包放在 項目下邊
    cmd 中錄入 mvn install : 安裝,把項目的jar包安裝到 本地倉庫 扔到倉庫

  • 1.6Maven核心概念
    1.6.1 Maven插件
    Maven的核心僅僅定義了抽象的生命週期,具體的任務都是交由插件完成的每個插件都能實現多個功能,每個功能就是一個插件目標
    Maven的生命週期與插件目標相互綁定,以完成某個具體的構建任務, Maven的插件在: .m2\repository\org\apache\maven\plugins (也可以更改目錄)

    1.6.2 Maven座標
    - groupId:定義當前Maven項目組 (實際對應JAVA的包的結構,有些跟公司名稱相關的項目)
    - artifactId:定義實際項目中的一個模塊(項目的唯一的標識符,實際對應項目的名稱,就是項目根目錄的名稱)
    - version:定義當前項目的當前版本

    1.6.3 Maven倉庫
         - 何爲Maven倉庫: 用來統一存儲所有Maven共享構建的位置是倉庫   
    -   Maven配置jar或其它包的路徑爲 :            groupId/artifactId/version
    -   本地倉庫(~/.m2/repository/):每個用戶只有一個本地倉庫
    -   中央倉庫(Maven默認的遠程倉庫):Maven默認的遠程倉庫下載地址爲:http://repo1.maven.org/maven2
    -   私服:是一種特殊的遠程倉庫, 它是架設在局域網內的倉庫, 主要是爲了團隊協作開發
    

整個Maven 倉庫的目錄結構

發佈了32 篇原創文章 · 獲贊 7 · 訪問量 8634
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章