天天看點

Java學習之Maven

一、Maven

1. 依賴管理

  • 傳統的crm項目的jar包是在項目中
  • maven開發的crm項目的jar包沒有存儲在項目中,而jar包存儲在jar包倉庫中,項目中僅保留了jar包的坐标,儲存坐标的檔案就是pom.xml
  • 當使用maven時,maven會首先去本地倉庫尋找jar包,如果沒有,在聯網的狀态去會自動去中央倉庫下載下傳jar包

2. 安裝

  • 首先去官網下載下傳apache-maven-3.6.1-bin.zip壓縮包
  • 下載下傳完成後将壓縮包解壓到沒有中文路徑的目錄下
  • 設定環境變量:maven的運作是要依賴Java的,是以一定要確定環境變量中有JAVA_HOME
    Java學習之Maven
    Java學習之Maven
  • 驗證是否安裝成功:mvn -v
    Java學習之Maven

3. maven項目标準目錄結構

  • src/main/java目錄:核心代碼部分
  • src/main/resources目錄:配置檔案部分
  • src/test/java目錄:測試代碼部分
  • src/test/resources目錄:測試配置檔案
  • src/main/webapp目錄:放置頁面資源,包括js、css、圖檔資源等

二、常用指令

  • 清除項目編譯資訊,也就是删除target目錄,在重新編譯前執行
mvn clean
           
  • 編譯
mvn compile
           
  • 編譯測試代碼部分
mvn test
           
  • 打包:打包會将main目錄下的代碼和test目錄下的代碼都進行編譯
mvn package
           
  • 安裝:install指令會将項目進行打包,并将打包後的檔案安裝到本地倉庫
mvn install
           
  • 釋出
mvn deploy
           

三、Maven配置

  • 在conf/settings.xml中配置本地倉庫路徑
    Java學習之Maven
  • 在idea的settings中搜尋maven,進行配置
    Java學習之Maven

四、建立maven項目

1. 使用骨架建構maven項目

  • 進入idea界面,選擇Create New Project,并選擇建立maven項目,并按照下圖進行選擇
    Java學習之Maven
  • 填寫項目相關資訊
    Java學習之Maven
  • 之後一直點選Next,直到項目被idea打開
  • 進入idea之後,右下角會有選擇Import Changes,點選導入,idea會自動下載下傳項目所需的jar包
  • 使用骨架建立的項目是沒有resources目錄的,需要手動去建立,并将目錄設定為配置檔案目錄,詳見下圖
    Java學習之Maven

2. 不使用骨架建構maven項目(推薦使用)

  • 不使用骨架,就是在建立的時候直接點選Next
    Java學習之Maven
  • 之後的方式都跟使用骨架一樣,直到idea打開項目
  • 項目打開後,Import Changes
  • 最後可以看到項目的目錄結構就已經建立完成了,與骨架建立的不同,不使用骨架的時,項目是自帶resources目錄的,詳見下圖
    Java學習之Maven

3. 配置項目依賴jar包

  • 打開pom.xml檔案,該檔案用于存放jar包的坐标
  • 首先先寫一個dependencies标簽,在這個标簽内部可以寫多個dependency标簽,每一個dependency标簽就是一個jar包的坐标,在dependency标簽内部根據idea提示将所需jar包的資訊補充完整
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>1.3</version>
        </dependency>
</dependencies>
           
  • 如果jar包找不到,可以百度“maven中央倉庫”,在倉庫中搜尋jar包,選擇任意版本,找到jar包的坐标,并複制到pom中
    Java學習之Maven
    Java學習之Maven
    Java學習之Maven

4. 解決jar包沖突

  • 在pom.xml中使用scope标簽,使jar包僅在寫代碼時生效,項目正式運作的時候不生效
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <!--僅在寫代碼時生效-->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>1.3</version>
            <scope>provided</scope>
        </dependency>
</dependencies>