maven的安裝與基本使用


一、什么是maven,有什么用?

  Maven是一個項目構建和管理的工具,其主要服務於基於java平台的項目構建、依賴管理和項目信息管理。它包含了一個項目對象模型 (Project Object Model),一組標准集合,一個項目生命周期Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。

 

二、maven安裝

  1.去maven官網下載並解壓maven,並配置環境變量

  

    

  配置完成后在命令行cmd 運行mvn -version  查詢對應的版本號

 

  2.配置文件settting.xml的簡單配置(最好是將setting.xml文件復制一份到本地倉庫中,然后進行修改)

    ①配置創建項目時默認的jdk版本,在<profiles></profiles>標簽中添加<profile></profile>,這樣每次update項目的時候就會變為默認的jdk版本,這里是默認全局設置的編譯版本

  

    <profile>    
        <id>jdk-1.7</id>    
        <activation>    
            <activeByDefault>true</activeByDefault>    
            <jdk>1.7</jdk>    
        </activation>    
        <properties>    
            <maven.compiler.source>1.7</maven.compiler.source>    
            <maven.compiler.target>1.7</maven.compiler.target>    
            <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>    
        </properties>    
    </profile> 

 

  

    ②配置私有倉庫的位置(maven所有的本地jar包都會放在私有倉庫里面),其默認位置是當前用戶目錄下.m2文件夾中。通過修改下面的路徑可以修改本地倉庫的位置。

    

    ③配置中央倉庫,使用阿里雲倉庫作為中央倉庫的鏡像,因為國外的倉庫訪問非常慢

    

<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

 

    

 

  

  

三、eclipse使用maven

  eclipse 直接創建maven project  ,項目結構如下:

  

 

 

四、pom文件解析

  pom是項目對象模型(Project Object Model)的簡稱,是maven的核心,其定義了整個項目的基本信息,如何構建項目、項目依賴的jar包等。

  簡單的pom解釋如下:

<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/maven-v4_0_0.xsd">
  
  <!-- 組織名 -->
  <groupId>com.kyle</groupId>
  <!-- 定義了當前Maven項目在組中唯一的ID -->
  <artifactId>demo</artifactId>
  <!-- 版本號 -->
  <version>0.0.1-SNAPSHOT</version>
  
  <!-- 指定了POM模型的版本,對於Maven2及Maven3來說,它只能是4.0.0 -->
  <modelVersion>4.0.0</modelVersion>
  <!-- 項目打包方式有pom、jar、war等 -->
  <packaging>war</packaging>
  <!-- 項目名,maven產生文檔用 -->
  <name>demo</name>
  <url>http://maven.apache.org</url>
  
  <!-- 繼承的父項目 -->
  <!-- <parent>
      <groupId></groupId>
      <artifactId></artifactId>
      <version></version>
  </parent> -->
  
  
  <!--項目引入依賴包-->    
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  
  
  <build>
    <finalName>demo</finalName>
    <plugins>
        <!-- 引入插件,設置java編譯版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
  </build>
  
</project>

 

  詳細的pom解析:

  https://www.cnblogs.com/oskyhg/p/6445589.html

  https://blog.csdn.net/sunzhenhua0608/article/details/32938533

  https://blog.csdn.net/wdx1121/article/details/79664385

 

 五、maven的生命周期和相關命令

  1.一個項目的構建過成通常包括清理、編譯、測試、打包、集成測試、驗證、部署等。Maven從中抽取了一套完善的、易擴展的生命周期。Maven的生命周期是抽象的,其中的具體任務都交由插件來完成。Maven為大多數構建任務編寫並綁定了默認的插件。

  2.Maven定義了三套生命周期:clean、default、site,每個生命周期都包含了一些階段(phase)。三套生命周期相互獨立,但各個生命周期中的phase卻是有順序的,且后面的phase依賴於前面的phase。執行某個phase時,其前面的phase會依順序執行,但不會觸發另外兩套生命周期中的任何phase。

    

      

    

  3.maven常見的命令

  

validate:驗證項目是正確的,所有必要的信息都是可用的
compile:編譯項目的源代碼
test:使用適當的單元測試框架測試編譯后的源代碼。這些測試不應要求將代碼打包或部署
package:使用已編譯的代碼,並將其打包成可分布格式,例如JAR。
verify:對集成測試的結果進行任何檢查,以確保滿足質量標准
install:將包安裝到本地存儲庫中,以便在本地其他項目中使用該包
deploy:在構建環境中完成,將最終的包復制到遠程存儲庫中,以便與其他開發人員和項目共享。

    這些生命周期階段(加上這里沒有顯示的其他生命周期階段)是按順序執行的,以完成默認的生命周期。鑒於上面的生命周期階段,這意味着當使用默認的生命周期時,Maven將會優先執行檢查項目(validate),然后將會嘗試編譯源代碼(compile),運行集成測試方案(test),驗證了集成測試(verify),驗證包安裝到本地存儲庫(install),然后將安裝包部署到遠程存儲庫(deploy)。

    

 

 

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM