Maven詳解(非原創)

文章大綱

1、maven功能介紹
2、maven整合javaweb案例
3、私服應用(瞭解)
4、總結
5、相關資料下載
6、參考文章javascript

1、maven功能介紹

1. maven基本介紹

  Maven的Apache公司開源項目,是項目構建工具。用來依賴管理。
1.1 maven的好處
使用傳統項目開發crm項目,項目大小:html

一樣的項目使用maven開發java

一樣的代碼,實現功能都同樣,maven項目如何作到的?能夠初步推斷maven項目中必定沒有jar包。沒有jar包的maven項目如何運行?
Maven項目找jar包過程:web

1.2 maven的好處api

maven的兩大核心:
依賴管理:對jar包管理過程
項目構建:項目在編碼完成後,對項目進行編譯、測試、打包、部署等一系列的操做都經過命令來實現tomcat

經過maven命令將web項目發佈到tomcat:服務器

舒適提示:使用myeclipse或者IDEA時,maven命令無需出現mvn,直接tomcat:run便可。eclipse

1.3 Maven工程的分類
打包方式
常見:jar、war、pomssh

Jar包
編譯完成,打包
會打成一個JAR包,用做jar包使用maven

war包
是一個Web工程
發佈在服務器上的工程,好比,網站或服務

未來咱們會將全部的JAR包,打到一塊兒
打到一個war包裏面,能夠部署到Tomcat上

Pom
聚合工程
通常都是父工程,管理jar包的版本、maven插件的版本、統一的依賴管理

Pom工程中,至少要有一個war包

2. maven安裝、配置本地倉庫

maven程序安裝前提:maven程序java開發,它的運行依賴jdk。

2.1 maven的下載安裝

下載安裝包

解壓到本地磁盤(解壓目錄不要有中文,空格)

配置環境變量,Jdk環境變量:JAVA_HOME

將maven_home環境變量配置到path環境變量中

查詢maven的版本信息:

2.2 配置本地倉庫

本地倉庫是指jar包存放的文件夾

2.3 maven配置中央倉庫,阿里雲倉庫地址
  使用maven自帶的中央倉庫地址很慢,因此咱們能夠改爲國內的地址,好比阿里雲,jar包下載到本地倉庫的速度就會快不少,具體配置以下:
  打開maven安裝目錄conf下的settings.xml文件,大概在145行找到<mirrors>下添加如下代碼:

<mirror> <id>maven.net.cn</id> <mirrorOf>central</mirrorOf> <name>central mirror in china</name> <url>http://maven.net.cn/content/groups/public</url> </mirror> 

3. maven項目標準目錄結構

對項目中文件進行細分:

4. maven的經常使用命令(熟練掌握)

4.1 clean:清理
  將項目根目錄下target目錄清理掉。

4.2 compile:編譯
  將項目中.java文件編譯爲.class文件

4.3 test:單元測試
  單元測試類名有要求:XxxxTest.java
  將項目根目錄下src/test/java目錄下的單元測試類都會執行。

4.4 package:打包
  web project ---- war包
  java project -----jar包
  將項目打包,打包項目根目錄下taget目錄

4.5 install:安裝
  解決本地多個項目公用一個jar包。
  打包到本地倉庫

4.6 舒適提示
  使用myeclipse或者IDEA時,maven命令無需出現mvn,直接tomcat:run便可。

5 . 依賴範圍(瞭解)

  依賴範圍:默認是compile
  若是將servlet-api.jar設置爲compile,打包後包含serlvet-api.jar,war包部署到tomcat跟tomcat中存在servlet-api.jar包衝突。致使運行失敗。
  若是使用到tomcat自帶jar包,將項目中依賴做用範圍設置爲:provided,其餘能夠默認

6. 傳遞依賴衝突解決(掌握)

6.1 依賴傳遞規則介紹
  傳遞依賴:A(項目)依賴B,B依賴C(1.1版本),B是A的直接依賴,C就是A的傳遞依賴
導入依賴D,D依賴C(1.2版本)

6.2 Maven本身調解原則

第一聲明者優先原則
  誰先定義的就用誰的傳遞依賴。

路徑近者優先原則
  直接依賴級別高於傳遞依賴。

6.3 排除依賴

方法一:

 

方法二:版本鎖定(推薦使用)

2、maven整合javaweb案例

1. maven整合web項目案例(熟練掌握)

1.1 配置eclipse中maven環境
  配置m2e插件,Mars2版本自帶maven插件
  須要配置maven程序

配置userSetting:讓eclipse知道maven倉庫位置

1.2 建立maven的javaweb項目

建立好的web項目,可能出現如下錯誤:
(1)web.xml缺失

(2)jdk編譯版本1.5,在pom.xml中添加插件

(3)建立servlet,serlvet編譯報錯,緣由:缺失servlet-api-xx.jar包

1.3 maven命令運行項目

2. maven對項目進行拆分、聚合(熟練掌握)

2.1 拆分、聚合基本介紹
  對如今已有maven ssh項目進行拆分,拆分思路:將dao層的代碼已經配置文件全體提取出來到一個表現上獨立的工程中。一樣service、action拆分。
  ssh-parent: 父工程
  ssh-dao:(子模塊)
  ssh-service
  ssh-web
  拆分完成對拆分後的項目進行聚合,提出概念父工程

2.2 建立父工程

建立好父工程目錄結構:只有pom.xml,能夠推斷父工程不進行編碼。
(1)項目須要的依賴的信息,在父工程中定義,子模塊繼承過程
(2)將各個子模塊聚合到一塊兒

2.3 將建立父工程發佈到本地倉庫
  將父工程發佈到本地倉庫後,其餘的字工程才能繼承使用

2.4 建立子模塊ssh-dao
舒適提示:子模塊須要右鍵父項目新建Module。
ssh-dao負責數據訪問層:包含dao相關代碼&配置文件

建立以後,將ssh-dao發佈到本地倉庫,給2.5的ssh-service進行依賴

2.5 建立子模塊ssh-service

將ssh-service工程打包到本地倉庫,給2.6的ssh-web項目添加依賴

2.6 建立子模塊ssh-web:war

在ssh-web項目中添加service工程依賴。

2.7 運行方式
  Maven方式:
  方式1:運行父工程。父工程將各個子模塊聚合到一塊兒。將ssh-web打war包發佈到tomcat
  方式2:直接運行web工程

  其餘方式:部署到tomcat

3、私服應用(瞭解)

1. 私服安裝

下載安裝包

解壓到本地磁盤

使用管理員權限打開dos,在dos下執行命令安裝私服

啓動服務

找到私服的訪問url

2. 私服倉庫類型

Hosted:宿主倉庫
存放本公司開發的jar包(正式版本、測試版本、第三方:存在版權問題--Oracle)
Proxy:代理倉庫
代理中央倉庫、Apache下測試版本的jar包
Group:組倉庫
未來鏈接組倉庫。包含Hosted:宿主倉庫,Proxy:代理倉庫

3. 上傳jar包到私服上(應用)

在maven目錄下conf/settings.xml.認證:配置用戶名密碼

<server> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server> 

在將要上傳的項目的pom.xml中配置jar包上傳路徑url

<distributionManagement> <repository> <id>releases</id> <url>http://localhost:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> 

執行命令發佈項目到私服(上傳)

4. 下載jar包到本地倉庫(應用)

在maven目錄下conf/settings.xml。配置模板

<profile>   
    <!--profile的id--> <id>dev</id> <repositories> <repository> <!--倉庫id,repositories能夠配置多個倉庫,保證id不重複--> <id>nexus</id> <!--倉庫地址,即nexus倉庫組的地址--> <url>http://localhost:8081/nexus/content/groups/public/</url> <!--是否下載releases構件--> <releases> <enabled>true</enabled> </releases> <!--是否下載snapshots構件--> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <!-- 插件倉庫,maven的運行依賴插件,也須要從私服下載插件 --> <pluginRepository> <!-- 插件倉庫的id不容許重複,若是重複後邊配置會覆蓋前邊 --> <id>public</id> <name>Public Repositories</name> <url>http://localhost:8081/nexus/content/groups/public/</url> </pluginRepository> </pluginRepositories> </profile> 

激活模板

<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles> 

4、總結

Maven好處包括如下幾點
一、再也不拷貝jar包。項目不須要存放jar包。致使項目源代碼小
二、使用maven開發的工程,若是環境統一導入別的maven的項目不會報錯
三、代碼耦合度進一步下降.
四、方便項目進行升級
五、節省人力成本

5、相關資料下載

連接:https://pan.baidu.com/s/1UUCps9Be3n8ZwGOXmVjfgw
提取碼:s15f

6、參考文章

http://yun.itheima.com/course/234.html

相關文章
相關標籤/搜索