Maven入門基礎

minus75發表於2018-11-24

Maven基礎

Maven的Apache公司開源專案,是專案的構建工具,用來依賴管理

1.maven的好處

  • 使用傳統專案開發cim專案,專案大小幾十兆
  • 使用maven開發幾百kb

同樣的程式碼,實現的功能都一樣,那麼maven專案是如何做到的?

可以初步推斷,maven專案中一定沒有jar包

沒有jar包,maven專案如何執行?

2.maven的好處如何實現

maven的兩大核心

  1. 依賴管理:對jar包管理過程
  2. 專案構建:專案在編碼完成後,對專案進行編譯,測試,打包,部署一系列的操作都通過命令來實現

通過maven命令將web專案釋出到tomcat

mvn tomcat:run

3.maven安裝 配置本地倉庫

maven程式安裝前提:maven程式純java開發,它的執行依賴jdk

4.maven專案標準目錄結構

5.maven常用命令(應用)

  1. clean:清理
mvn clean

將專案根目錄下的target目錄清理掉

  1. compile:編譯
mvn compile

將專案中的java檔案編譯成class檔案

  1. test:單元測試
mvn test

單元測試的類名有要求:xxxTest.java
將專案根目錄下src/test/java目錄下的單元測試類都會執行

  1. package:打包
mvn package

web project —> war包
java project —> jar包
將專案打包,打包專案根目錄下target目錄

  1. install:安裝
mvn install

解決本地多個專案公用一個jar包的問題,打包到本地倉庫

  1. maven專案的生命週期(瞭解)

在maven種存在”三套”生命週期,每一套生命週期相互獨立,互不影響,在一套生命週期內,執行後面的命令前面操作會自動執行

- ClwanLifeCycle:清理生命週期
Clean
- defaultLifeCycle:預設生命週期
compile,test,package,install,deploy
- siteLIfeCycle:站點生命週期
site
  1. 概念模型

兩個核心:依賴管理,專案構建

6.maven整合web專案案例

1.配置eclipse種maven環境

(1) 配置m2e外掛,Mars2版本自帶maven外掛
(2)需要配置maven程式
1.windows -> preferences -> maven -> installations -> add 新增本地maven
2.windows -> preferences -> maven -> User-setting 新增本地setting.xml及本地倉庫
3.windows -> show Windows -> maven Reo... ->local Reo... ->rebuild index 重建索引

2.maven整合servlet

建立好的maven專案有兩個錯誤
(1)缺少web.xml
(2)jdk編譯版本1.5,在pom.xml中新增依賴

建立servlet

3.依賴範圍

依賴範圍 對於編譯classpath有效 對於測試classpath有效 對於執行時classpath有效 例子
compile Y Y Y spring-core
test Y Junit
provided Y Y servlet-api
runtime Y Y JDBC驅動
system Y Y 本地的maven倉庫之外的倉庫

新增依賴範圍,預設是compile
provided:部署到tomcat後不再需要

問題:
如果將servlet-api這個jar包設定為compile,最終打包後就包含一個servlet-api.jar包,當war包部署到tomcat中,已存在servlet-api.jar包衝突,導致執行失敗

解決:

<scope>provided</scope>

總結:如果使用到tomcat自帶jar包,需要將專案中依賴作用範圍設定為:provided

4.執行專案
run as —> maven build… —>輸入 tomcat:run

5.除錯專案
debug as —> maven build… —>輸入 tomcat:run(記得新增原始碼)

7.總結

  1. 安裝
  2. maven標準目錄結構
  3. maven常用命令
  4. 使用eclipse開發maven專案
  5. pom.xml專案物件模型
    (1)本專案的座標資訊
    (2)本專案jdk編譯版本的資訊
    (3)本專案依賴jar包資訊

_

1.傳遞依賴衝突解決(瞭解)

依賴傳遞:A(專案)依賴B,B依賴C(1.1版本),B是A的直接依賴,C就是A的依賴傳遞

   匯入依賴D,D依賴C(1.2版本)

1.1maven自己調解原則

1.第一宣告者優先原則

誰先定義就用誰的傳遞依賴

2.路徑近者優先原則

直接依賴級別高於傳遞依賴

2.排除依賴

3.版本鎖定(推薦使用)

2.通過maven整合ssh框架(重點)

2.1搭建struts2環境

  1. 建立struts2配置檔案:struts.xml
  2. 在web.xml中配置struts的核心過濾器

2.2搭建spring環境

  1. 建立spring配置檔案:applicationContext.xml
  2. 在web.xml種配置監聽器:ContextLoaderListener

2.3搭建Hibernate環境

  1. 建立hibernate核心配置檔案

2.4struts2跟spring整合

整合關鍵點:action物件的建立,交給spring建立

  1. 建立Action類
  2. 將Action物件配置到spring配置檔案中
  3. 在struts.xml中在action節點中class屬性配置為spring工程中action物件bean的id

2.5spring與hibernate整合

整合關鍵點:1.資料來源dataSource交給spring 2.SessionFactory物件建立交給spring物件 3.事務管理

3.通過maven對專案進行拆分聚合(重點)