Maven最全教程,看了必懂(一)

一、爲什麼使用Maven這樣的構建工具【why】

① 一個項目就是一個工程

如果項目非常龐大,就不適合使用package來劃分模塊,最好是每一個模塊對應一個工程,利於分工協作。藉助於maven就可以將一個項目拆分成多個工程

② 項目中使用jar包,需要“複製”、“粘貼”項目的lib中

同樣的jar包重複的出現在不同的項目工程中,你需要做不停的複製粘貼的重複工作。藉助於maven,可以將jar包保存在“倉庫”中,不管在哪個項目只要使用引用即可就行。

③ jar包需要的時候每次都要自己準備好或到官網下載

藉助於maven我們可以使用統一的規範方式下載jar包,規範

④ jar包版本不一致的風險

不同的項目在使用jar包的時候,有可能會導致各個項目的jar包版本不一致,導致未執行錯誤。藉助於maven,所有的jar包都放在“倉庫”中,所有的項目都使用倉庫的一份jar包。

⑤ 一個jar包依賴其他的jar包需要自己手動的加入到項目中

FileUpload組件->IO組件,commons-fileupload-1.3.jar依賴於commons-io-2.0.1.jar

極大的浪費了我們導入包的時間成本,也極大的增加了學習成本。藉助於maven,它會自動的將依賴的jar包導入進來。

二、maven是什麼【what】

① maven是一款服務於java平臺的自動化構建工具

make->Ant->Maven->Gradle

名字叫法:我們可以叫妹文也可以叫麥文,但是沒有叫媽文的。

② 構建

構建定義:把動態的Web工程經過編譯得到的編譯結果部署到服務器上的整個過程。

編譯:java源文件[.java]->編譯->Classz字節碼文件[.class]

部署:最終在sevlet容器中部署的不是動態web工程,而是編譯後的文件

 

③ 構建的各個環節

  • 清理clean:將以前編譯得到的舊文件class字節碼文件刪除
  • 編譯compile:將java源程序編譯成class字節碼文件

  • 測試test:自動測試,自動調用junit程序

  • 報告report:測試程序執行的結果

  • 打包package:動態Web工程打War包,java工程打jar包

  • 安裝install:Maven特定的概念-----將打包得到的文件複製到“倉庫”中的指定位置

  • 部署deploy:將動態Web工程生成的war包複製到Servlet容器下,使其可以運行

三、安裝maven

① 當前系統是否配置JAVA_HOME的環境變量

② 下載maven,解壓maven放在一個非中文無空格的路徑下

③ 配置maven的相關環境變量

  • 在環境變量增加M2_HOME,路徑是maven解壓後的根目錄

  • 在環境變量裏的path中增加maven/bin的目錄

④ 驗證:maven -v 查看maven版本

看到版本信息,恭喜你已經OK了。

四、第一個maven

① 創建約定的目錄結構(maven工程必須按照約定的目錄結構創建)

我們按照上面的文件夾目錄結構手動創建一下,不用任何IDE環境(手動的其實最有助於我們理解maven)

文件內容如下

在src/main/java/com/hzg/maven目錄下新建文件Hello.java,內容如下

package com.hzg.maven;
public class Hello {
  public String sayHello(String name){
    return "Hello "+name+"!";
  }
}

POM文件內容:

<?xml version="1.0" ?>
<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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.hzg.maven</groupId>
    <artifactId>Hello</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <name>Hello</name>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

② 常用maven命令

  • mvn clean:清理

  • mvn compile:編譯主程序

  • mvn test-compile:編譯測試程序

  • mvn test:執行測試

  • mvn package:打包

  • mvn install:安裝

執行maven命令必須進入到pom.xml的目錄中進行執行

             

進入到項目的pom.xml目錄之後,就可以執行啦。

1、運行 mvn compile

OK,運行完畢,你在pom.xml配置的依賴的包已經導入到倉庫了,問題來了,倉庫默認的位置在哪?

倉庫的默認位置:c:\Usrs[登錄當前系統的用戶名].m2\repository

剛纔執行完compile之後,之前的文件夾發生了變化

我們發現Hello項目裏裏多了一個target文件夾。文件夾的內容爲:

發現target裏主要存放的就是編譯後的字節碼文件

2、運行mvn test-compile,target文件夾下面除了classes之外多了test-classes文件夾

3、運行mvn package,target文件夾下面又多了一個打好的jar包

4、運行mvn clean,發現整個target文件夾都沒了。又回到了編譯之前我們手動創建的文件夾

 

 

 

 

 

 

 

 

 

 

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