1. 程式人生 > >【Maven】01——Maven到底是什麼?

【Maven】01——Maven到底是什麼?

一:沒有Maven之前我們是如何管理專案依賴的?

如果專案A需要用到專案B的類中的方法,這時候該怎麼做?我們會將B打成jar包,然後在專案A中引入B的jar包,如果A依賴與B專案,同時還需要把B依賴的jar包找出來,再手動匯入,超級繁瑣。

這樣做幾種缺陷:
1.如果在開發過程中,發現B中的bug,則必須將B專案修改好,並重新將B打包並對A專案進行重編譯操作。
2.在完成A專案的開發後,為了保證A的正常執行,就需要依賴B(就像在使用某個jar包時必須依賴另外一個jar一樣),兩種解決方案,第一種,選擇將B打包入A中,第二種,將B也釋出出去,等別人需要用A時,告訴開發者,想要用A就必須在匯入Bjar包。兩個都很麻煩,前者可能造成資源的浪費(比如,開發者可能正在開發依賴B的其它專案,B已經儲存到本地了,在匯入A的jar包的話,就有了兩個B的jar),後者是我們常遇到的,找各種jar包,非常麻煩(有了maven就不一樣了)

二.什麼是Maven專案?

Maven是基於專案物件模型(POM project object model),可以通過一小段描述資訊(配置)來管理專案的構建,報告和文件的軟體專案管理工具。通俗地講,maven就是管理專案jar包之間互相依賴的工具,就是通過pom.xml檔案的配置獲取jar包而不用手動去新增jar包。
如果需要使用pom.xml來獲取jar包,那麼首先該專案就必須為maven專案,maven專案可以這樣去想,就是在java專案和web專案的上面包裹了一層maven,本質上java專案還是java專案,web專案還是web專案,但是包裹了maven之後,就可以使用maven提供的一些功能了(通過pom.xml新增jar包)。

那麼,問題來了!!!
1,在此之前我們就必須瞭解如何建立maven專案,maven專案的結構是怎樣,與普通java,web專案的區別在哪裡,還有如何配置pom.xml獲取到對應的jar包等等,這裡提前瞭解一下我們如何通過pom.xml檔案獲取到想要的jar的,具體後面會詳細講解該配置檔案。

三.如何建立Maven專案?maven專案的結構是怎樣,與普通java,web專案的區別在哪裡?

(1)使用命令建立

mvn archetype:generate -DgroupId=com.wuhao.maven.quickstart -DartifactId=simple -DarchetypeArtifactId=maven-arche

mvn:核心命令
archetype:create:建立專案,
-DgroupId=com.wuhao.maven.quickstart :建立該maven專案時的groupId是什麼。一般使用包名的寫法。因為包名是用公司的域名的反寫,獨一無二
-DartifactId=simple:建立該maven專案時的artifactId是什麼,就是專案名稱
-DarchetypeArtifactId=maven-archetype-quickstart:表示建立的是[maven]java專案
            
(2)在eclipse或IDEA開發工具中建立

建立完java專案的資料夾目錄結構如下:
simple
            —pom.xml    核心配置,專案根下
            —src
             —main      
                —java    java原始碼目錄
               —resources  java配置檔案目錄
             —test
               —java    測試原始碼目錄
               —resources  測試配置目錄
               
maven專案比普通的專案多了一個pom.xml檔案.

(3)命令操作maven java或web專案
編譯:mvn compile  –src/main/java目錄java原始碼編譯生成class (target目錄下)
 
測試:mvn test    –src/test/java 目錄編譯
清理:mvn clean    –刪除target目錄,也就是將class檔案等刪除
打包:mvn package  –生成壓縮檔案:java專案#jar包;web專案#war包,也是放在target目錄下
安裝:mvn install   –將壓縮檔案(jar或者war)上傳到本地倉庫
部署|釋出:mvn deploy  –將壓縮檔案上傳私服

使用 mvn install,在本地倉庫會有該專案的jar包
這裡寫圖片描述

四.我們是如何通過pom.xml檔案獲取到想要的jar的?

首先說一下倉庫的概念:
倉庫分為本地倉庫和遠端倉庫,遠端倉庫分為私服和中央倉庫

本地倉庫,在maven/settings.xml配置檔案中設定:以後我們下載的jar包都會存放在這裡.
這裡寫圖片描述

私服:第三方倉庫,如果我們從中央倉庫下載,速度會很慢,並且如果外網不可訪問的話,專案開發機會是不可能進行的,這時候就需要公司內部自己搭建一個倉庫,用來當做中央倉庫的映象的,

jar包獲取的過程:
先從本地,本地倉庫沒有,則從私服上下載,私服上也沒有的話,則私服會從中央倉庫下載進行儲存,然後我們再從私服上下載.
這裡寫圖片描述

上面說過定位一個jar包的三個屬性,groupId,artifactId,version,所以就可以下載相應的jar包。

五.如何搭建Maven 映象倉庫?私服如何搭建?