1. 程式人生 > >maven歸納:(1)基礎

maven歸納:(1)基礎

1.什麼是maven

    Maven是基於專案物件模型(POM),可以通過一小段描述資訊來管理專案的構建,報告和文件的軟體專案管理工具。     Maven是跨平臺的專案管理工具。主要服務於基於Java平臺的專案構建,依賴管理和專案資訊管理。     Maven主要有兩個功能:         1、專案構建;2、依賴管理         Ant:             Ant只是一個專案構建工具,它沒有整合依賴管理。             Ant在進行專案構建時,它沒有對專案目錄結構進行約定,需要手動指定原始檔、類檔案等目錄地址。             同時它執行task時,需要顯示指定依賴的task,這樣會造成大量的程式碼重複。

2.2Maven的安裝

        第一步:安裝jdk,Maven3.3以上的版本要求JDK1.7或以上版本。         第二步:把maven解壓縮,解壓目錄最好不要有中文。         第三步:配置環境變數MAVEN_HOME         第四步:配置環境變數PATH,將%MAVEN_HOME%\bin加入Path中,在Windows中一定要注意要用分號;與其他值隔開。         第五步:驗證是否安裝成功,開啟cmd視窗,輸入mvn –v

2.3Maven的配置

        Maven有兩個settings.xml配置檔案,一個是全域性配置檔案,一個是使用者配置檔案pom.xml。         全域性配置(預設)         %MAVEN_HOME%/conf/settings.xml 是maven全域性的配置檔案。         全域性配置和使用者配置可以一樣,若不一樣,使用者配置會覆蓋全域性配置     配置步驟如下:         第一步:建立一個本地倉庫目錄,比如D:\Java\repository。         第二步:複製maven的全域性配置檔案到~/.m2目錄下,即建立使用者配置檔案         第三步:修改maven的使用者配置檔案settings.xml。

3.1Maven的工程結構

    Project       |-src       |   |-main       |   |  |-java        —— 存放專案的.java檔案       |   |  |-resources   —— 存放專案資原始檔,如spring, hibernate配置檔案       |   |-test       |      |-java        ——存放所有測試.java檔案,如JUnit測試類       |      |-resources   —— 測試資原始檔       |-target             —— 目標檔案輸出位置例如.class、.jar、.war檔案       |-pom.xml           ——maven專案核心配置檔案

3.2配置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">
              <!-- 版本:4.0.0 -->
              <modelVersion>4.0.0</modelVersion>
              <!-- 組織名稱:暫時使用 組織名稱+專案名稱 作為組織名稱 -->
              <!-- 組織名稱:實際名稱 按照訪問路徑規範設定,通常以功能作為名稱:eg: junit spring -->
              <groupId>com.asd.hellomaven</groupId>
              <!-- 專案名稱 -->
              <artifactId>hellomaven</artifactId>
              <!-- 當前專案版本號:同一個專案開發過程中可以釋出多個版本,此處標示0.0.1版 -->
              <!-- 當前專案版本號:每個工程釋出後可以釋出多個版本,依賴時調取不同的版本,使用不同的版本號 -->
              <version>0.0.1</version>
              <!-- 名稱:可省略 -->
              <name>Hello</name>
              <!-- 依賴關係 -->
                <dependencies>
                    <!-- 依賴設定 -->
                    <dependency>
                        <!-- 依賴組織名稱 -->
                        <groupId>junit</groupId>
                        <!-- 依賴專案名稱 -->
                        <artifactId>junit</artifactId>
                        <!-- 依賴版本名稱 -->
                        <version>4.9</version>
                        <!-- 依賴範圍:test包下依賴該設定 -->
                        <scope>test</scope>
                    </dependency>        
                </dependencies>
            </project>

3.3Maven的命令  

        3.3.1mvn compile         執行 mvn compile命令,完成編譯操作         執行完畢後,會生成target目錄,該目錄中存放了編譯後的位元組碼檔案。         3.3.2mvn clean         執行 mvn clean命令         執行完畢後,會將target目錄刪除。         3.3.3mvn test         執行 mvn test命令,完成單元測試操作         執行完畢後,會在target目錄中生成三個資料夾:surefire、surefire-reports(測試報告)、test-classes(測試的位元組碼檔案)          3.3.4mvn package         執行 mvn package命令,完成打包操作         執行完畢後,會在target目錄中生成一個檔案,該檔案可能是jar、war         3.3.5Mvn install          執行 mvn install命令,完成將打好的jar包安裝到本地倉庫的操作         執行完畢後,會在本地倉庫中出現安裝後的jar包,方便其他工程引用         3.3.6mvn clean compile命令         cmd 中錄入 mvn clean compile命令         組合指令,先執行clean,再執行compile,通常應用於上線前執行,清除測試類         3.3.7mvn clean test命令         cmd 中錄入 mvn clean test命令         組合指令,先執行clean,再執行test,通常應用於測試環節         3.3.8mvn clean package命令         cmd 中錄入 mvn clean package命令             組合指令,先執行clean,再執行package,將專案打包,通常應用於釋出前             執行過程:                 清理————清空環境                 編譯————編譯原始碼                 測試————測試原始碼                 打包————將編譯的非測試類打包         3.3.9mvn clean install命令         cmd 中錄入 mvn clean install 檢視倉庫,當前專案被髮布到倉庫中             組合指令,先執行clean,再執行install,將專案打包,通常應用於釋出前             執行過程:                 清理————清空環境                 編譯————編譯原始碼                 測試————測試原始碼                 打包————將編譯的非測試類打包                 部署————將打好的包釋出到資源倉庫中  

4.Maven build和maven build... 並不是maven的命令。

        maven build...只是提供一個命令輸入功能,可以在此功能中輸入自定義的maven命令。         maven build的功能就是執行上次自定義命令。