maven1-概述

引言

搭建一個SSM環境的步驟是java

  1. 導入jar包
  2. 包結構
  3. 書寫配置文件

第一步導入jar包這一步就很繁瑣,若是咱們要搭建一個SSM的環境,少說也要導入十來個jar包web

那麼咱們怎麼找jar包,導入jar包的?一個一個去找,一個一個導入,麻煩易錯,那麼如何解決這個問題呢?spring

maven

Maven介紹

Maven 項目管理和構建的工具 底層是javatomcat

就是一個工具 至關於tomcat Tomcat幫咱們作了什麼事兒呢 發佈項目 maven幫咱們作項目管理網絡

是Apache開源組織提供的一個基於POM(Project Object Model)的項目構建(Build)工具,所謂的構建指的是代碼清除(clean)、編譯(compile)、測試(test)、打包(package)、安裝(install)、部署(deploy)等一系列流程架構

Maven特色

能夠擺脫IDE的規範

什麼是IDE規範 例子:噹噹網項目結構 IDEA和Myeclipes的區別----->問題:項目的遷移不方便 可移植性差 場景:項目進行到一半換IDEA能不能行?----->解決:maven提出統一的規範app

經過命令快速構建項目

如今構建項目:經過IDE工具構建的webapp

Maven:經過一個指令就能夠maven

指令就是命令 javac工具

自動管理依賴

依賴爲何要管理 jar和jar之間有依賴關係 Sturts2和xwork----->問題:本身管理很麻煩,容易出錯 ---->解決:maven能夠自動的管理jar包

1545642534755

例子:Sturts2的開發,導入jar包

struts-core.jar 依賴 xwork-core.jar jar包之間是須要互相依賴的,那麼有沒有一種可能a--->b--->c--->d

若是要使用a,必須導入依賴的bcd

maven如何來解決這個問題?

節省磁盤空間

1545642654959

每一個項目中都須要導入一套jar包 ----> 問題:jar包冗餘 浪費空間 ---->解決:公共文件夾集中管理jar包 誰須要誰去引用---->maven就是這麼作的 本地倉庫文件夾---->問題:若是須要的jar包本地文件夾沒有怎麼辦---->經過網絡下載 maven中心倉庫(演示訪問) 原理圖---->問題:如何告訴本地倉庫須要什麼jar包?如何標識一個jar包?---->maven座標 演示一個座標

1.例子:兩個項目用的都是SSM架構,都須要導入一整套的jar包。

有什麼問題?

代碼冗餘,jar包也冗餘了。

如何解決這個問題?

2.例如我想在兩個項目中都引入Mybatis的jar包,提供一個公共的文件夾(集中式的文件夾),若是要使用jar包都去這個文件夾中引用。不引入。

Maven就是這樣作的,Maven中也有這樣的一個文件夾,叫本地倉庫。本地倉庫就是本地電腦上的一個文件夾,存放jar包。

結論:Maven是集中式依賴管理的項目構建工具。

3.若是我如今要使用spring-core的jar包,而本地倉庫中沒有怎麼辦?

本地不可能有全部的jar包,可是能夠經過網絡去下載,去哪下呢?

Maven中心倉庫(遠程倉庫):是Maven官方維護的,存儲了全球知名開源的jar包。

@RestController

演示:中心倉庫中看spring的jar包

這個過程有沒有什麼問題?

1545642705625

例子:買飲料 品牌(標識)

咱們的項目如何告訴本地倉庫要什麼jar包呢?怎麼去標識一個jar包(有惟一標識就能夠肯定一個jar包)?

Maven是經過座標來標識jar包的。

Maven座標

  1. 組織名 公司域名倒敘
  2. 項目名
  3. 版本號

演示:spring-core的座標

座標是標籤格式的寫在配置文件中。

Maven項目的標誌就是pom.xml

Maven的規範

回顧IDE規範 解決預留問題:maven的規範是什麼樣的?----> 項目結構約束對比講解

約定大於配置,用別人的東西遵照別人的規定

項目結構約束

dangdang

  • src/main/java src存放源代碼
  • src/main/resources conf配置文件
  • src/main/webapp
  • src/test/java 存放測試代碼
  • src/test/resources 存放測試相關的配置文件
  • target 目標目錄 存放class文件
  • pom.xml

項目必須遵照這樣的結構

相關文章
相關標籤/搜索