java基礎-11 maven

maven基礎

maven是項目構建工具,用來依賴管理

Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。

Maven 除了以程序構建能力爲特色之外,還提供高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目採用 Maven 的比例在持續增長。

Maven這個單詞來自於意第緒語(猶太語),意爲知識的積累,最初在Jakata Turbine項目中用來簡化構建過程。當時有一些項目(有各自Ant build文件),僅有細微的差別,而JAR文件都由CVS來維護。於是希望有一種標準化的方式構建項目,一個清晰的方式定義項目的組成,一個容易的方式發佈項目的信息,以及一種簡單的方式在多個項目中共享JARs。

  • maven的兩大核心

依賴管理:對jar的管理

項目構建:對項目進行編譯、測試、打包、部署一系列操作都可以通過命令來實現

 

  • maven的安裝

下載地址:http://maven.apache.org/download.cgi#

 解壓,注意目錄中不要包含中文和空格

配置環境變量:(maven的運行需要jdk)

  • idea配置maven

 

如果要選擇idea提供好的骨架需要勾選 create from archetype

idea提供好的maven java骨架 

 

 

 

注意 ! ! !

創建第一個maven項目的同學(萌新)千萬千萬千萬不要手賤去點quickstart, 普普通通的創建就行了

(否則就會沒有src的目錄, 這是up主在經歷的n多次的創建之後得出的結論)

  • maven配置本地倉庫

apache-maven-3.6.3\conf\settings.xml

  • maven項目標準目錄結構

target:存放編譯之後的文件(target目錄並不屬於maven項目標準目錄結構

 

導入maven項目

main:主要的

  1. java:存放代碼
  2. resource:存放配置文件
  3. webapp:存放網頁

test:單元測試

  • maven的常用命令

  • clean:清理編譯後的class代碼

mvn clean會刪除target整個目錄包括target目錄本身

  • compile:編譯

將項目的.java文件編譯成.class文件,將編譯後.class文件存放到target目錄下

  • test:單元測試

單元測試類名有要求: XxxxTest.java(要求以 Test.java結尾)

項目跟目錄下 src/test/java 目錄下的單元測試類都會執行

  • package:打包

web project  ---war包

java project  ---jar包

  • install:安裝

打包項目到本地倉庫(可以在本地共享jar包)

  • maven項目的生命週期

在maven中有“三套”生命週期,每一套生命週期相互獨立,互不影響。在一套生命週期內,執行後面的命令前面的命令都會自動執行

  • CleanLifeCycle:清理生命週期

       clean

  • defaultLifeCycle:默認生命週期

      compile、test、package、install、deploy

  • siteLifeCycle:站點生命週期

      site

注意:在一套生命週期內,執行後面的命令前面的命令都會自動執行

 

  • eclipse中配置maven環境

  • 安裝m2e插件

EMBEDDED(embedded內嵌式)內嵌版本 

  •  修改內嵌版本到自己下載的版本

  • 配置userSetting讓eclipse能知道maven倉庫的位置

選擇 settings.xml ,eclipse會自動解析出倉庫位置

  • 構建索引

  • 創建maven項目

 

  <build>
  	<plugins>
  		<!-- 設置jdk的編譯版本爲1.8 -->
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-compiler-plugin</artifactId>
  			<configuration>
  				<source>1.8</source>
  				<target>1.8</target>
  				<encoding>UTF-8</encoding>
  			</configuration>
  		</plugin>
  	</plugins>
  </build>
  •  查找依賴

  • 依賴範圍

  • 修改依賴範圍

總結:如果使用到tomcat自帶的jar包,將項目中依賴作用範圍設置爲:provided

  •  運行調試maven項目

  • maven概念模型

兩大核心:

  1.  依賴管理:對jar包管理
  2.  項目構建:通過命令進行項目構建

  • 傳遞依賴衝突解決

傳遞依賴:A依賴B,B依賴C(1.1版本),B是A的直接依賴,C就是A的傳遞依賴,A還依賴於D,D依賴於C(1.2版本)

  •  解決方案
  • maven自己的調解原則
  1. 第一聲名者優先原則:誰先定義的就用誰的傳遞依賴。
  2. 路徑近者優先原則:直接依賴高於傳遞依賴。

  • 排除依賴

  • 版本鎖定(推薦使用

 

  • 通過maven整合ssh框架

  • 通過maven對項目進行拆分、聚合(重點) 

  • 創建父工程

  • 創建子工程

 

 運行的方式:

  • 私服的應用

安裝私服

下載安裝包

  • 倉庫類型

 

上傳jar包到私服

 

  • maven的好處

 

 

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