maven

一、 maven介紹

1、什麼是maven?

Maven 是一個項目管理工具,它包含了一個項目對象模型 (POM:Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯

2、maven的作用?

(1)maven的依賴管理

maven 工程中不直接將 jar 包導入到工程中,而是通過在 pom.xml 文件中添加所需 jar包的座標

(2)項目的一鍵構建

我們的項目,往往都要經歷編譯、測試、運行、打包、安裝 ,部署等一系列過程。

一鍵構建 指的是整個構建過程,使用 maven 一個命令可以輕鬆完成整個工作。

 

二、 maven倉庫

1、maven倉庫的分類

(1)本地倉庫

(2)遠程倉庫(私服)

(3)中央倉庫:在 maven 軟件中內置一個遠程倉庫地址 http://repo1.maven.org/maven2 ,它是中 央倉庫,服務於整個互聯網,它是由 Maven 團隊自己維護,裏面存儲了非常全的 jar 包,它包 含了世界上大部分流行的開源項目構件

2、maven工程的認識

三、 maven常用命令

1、compile(編譯命令)

mvn compile 作用是將 src/main/java 下的文件編譯爲 class 文件輸出到 target 目錄下

2、test(測試命令)

mvn test 會執行 src/test/java 下的單元測試類

3、clean(清理命令)

mvn clean 作用會刪除 target 目錄及內容

4、package(打包命令)

mvn package  對於 java 工程執行 package 打成 jar 包,對於 web 工程打成 war 包

5、install(安裝命令)

mvn install 將 maven 打成 jar 包或 war 包發佈到本地倉庫【 從運行結果中,可以看出: 當後面的命令執行時,前面的操作過程也都會自動執行 】

6、deploy

mvn deploy 將 maven 打成 jar 包或 war 包並上傳到私服

四、 pom

1、座標的書寫規則

groupId包名

artifactId 項目名或模塊名

version 版本號

2、如何添加座標

(1)從互聯網搜索

https://search.maven.org/

https://mvnrepository.com/

(2)去項目所在私服查

(3)在本地倉庫搜索

3、pom基本配置

<project > :文件的根節點 .

<modelversion > : pom.xml 使用的對象模型版本

<groupId > :包名

<artifactId > :項目名或模塊名

<version > :產品的版本號 

<packaging > :打包類型,一般有 jar、war、pom 等【jar:執行 package 會打成 jar 包war:執行 package 會打成 war 包pom :用於 maven 工程的繼承,通常父工程設置爲 pom】

<name > :項目的顯示名,常用於 Maven 生成的文檔。

<description > :項目描述,常用於 Maven 生成的文檔

<dependencies> :項目依賴構件配置,配置項目依賴構件的座標

<build> :項目構建配置,配置編譯、運行插件等。

4、依賴範圍

5、依賴傳遞

依賴範圍對傳遞依賴的影響

是因爲沒有 junit.jar 引起的!爲什麼會這樣呢?我們 ssm_dao 模塊中有 junit 依賴而

ssm_service 模塊依賴了 ssm_dao,難道 junit 不應該傳遞過來嗎?

ssm_dao 依賴 junit,scop 爲 test

ssm_service 依賴 ssm_dao

6、依賴衝突的解決

排除依賴

<dependency>

    <groupId>com.pt.poseidon.cache</groupId>

    <artifactId>poseidon-cache</artifactId>

    <version>1.0.0</version>

    <exclusions>

        <exclusion>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-log4j12</artifactId>

          </exclusion>

    </exclusions>

</dependency>

五、 分模塊構建工程

什麼是繼承?

將重複的配置提取出來在父工程的 pom.xml 中定義

什麼是聚合?

項目開發通常是分組分模塊開發,每個模塊開發完成要運行整個工程需要將每個模塊聚合在一起運行,比如:dao、service、web 三個工程最終會打一個獨立的 war 運行。

六、maven私服

1、什麼是私服?

公司在自己的局域網內搭建自己的遠程倉庫服務器,稱爲私服,私服服務器即是公司內

部的 maven 遠程倉庫,

2、倉庫類型

【1】 hosted,宿主倉庫,部署自己的 jar 到這個類型的倉庫,包括 releases 和 snapshot 兩部

分,Releases 公司內部發布版本倉庫、 Snapshots 公司內部測試版本倉庫

【2】 proxy,代理倉庫,用於代理遠程的公共倉庫,如 maven 中央倉庫,用戶連接私服,私

服自動去中央倉庫下載 jar 包或者插件。

【3】group,倉庫組,用來合併多個 hosted/proxy 倉庫,通常我們配置自己的 maven 連接倉

庫組。

【5】virtual(虛擬):兼容 Maven1 版本的 jar 或者插件

 

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