JAVAEE管理——Maven

Maven簡(jiǎn)介

是apache下的一個(gè)開源項(xiàng)目慷嗜,是純java開發(fā),并且只是用來(lái)管理java項(xiàng)目的

Maven好處

普通的傳統(tǒng)項(xiàng)目

圖片.png

Maven項(xiàng)目

圖片.png

依賴管理

need-to-insert-img

圖片.png

Maven的好處

依賴管理:就是對(duì)項(xiàng)目依賴的jar包的統(tǒng)一管理 可以節(jié)省空間

一鍵構(gòu)建

可以跨平臺(tái)

應(yīng)用于大型項(xiàng)目 可以提高開發(fā)效率

Maven構(gòu)建

下載安裝

need-to-insert-img

圖片.png

maven的核心文件 maven/apache-maven-3.5.4/conf/settings.xml

need-to-insert-img

核心文件

Maven的三種倉(cāng)庫(kù)

本地倉(cāng)庫(kù) 自己維護(hù)

配置本地倉(cāng)庫(kù)需要修改setting.xml文件

<!-- localRepository

? | The path to the local repository maven will use to store artifacts.

? |

? | Default: ${user.home}/.m2/repository 默認(rèn)本地倉(cāng)庫(kù)

? <localRepository>/path/to/local/repo</localRepository>

? -->> default 默認(rèn)的本地倉(cāng)庫(kù)

遠(yuǎn)程倉(cāng)庫(kù) 公司維護(hù)

中央倉(cāng)庫(kù) maven團(tuán)隊(duì)維護(hù)

Maven的目錄結(jié)構(gòu)

need-to-insert-img

maven項(xiàng)目目錄結(jié)構(gòu)

need-to-insert-img

Maven的目錄結(jié)構(gòu)

Maven的常用命令

clean清理

clean是maven工程的清理命令蔬啡,執(zhí)行clean會(huì)刪除target目錄的內(nèi)容

need-to-insert-img

clean命令

Compile

Compile是maven工程的編譯命令,作用是將src/main/java下的文件編譯為class文件輸出到target目錄下

need-to-insert-img

圖片.png

Test

test是maven工程的測(cè)試命令,會(huì)執(zhí)行src/test/java下的單元測(cè)試類

need-to-insert-img

圖片.png

package

package是maven工程的打包命令,對(duì)于java工程執(zhí)行package打成jar包懦铺,對(duì)于web工程打成war包

need-to-insert-img

圖片.png

install 將項(xiàng)目發(fā)布到本地倉(cāng)庫(kù)

install是maven工程的安裝命令,執(zhí)行install將maven打成jar包或war包發(fā)布到本地倉(cāng)庫(kù)

對(duì)于web工程 發(fā)布到本地倉(cāng)庫(kù)并沒有任何作用

need-to-insert-img

install

Tomcat:run 一鍵啟動(dòng)

site 生成對(duì)應(yīng)的工程說(shuō)明

Maven的生命周期

compile test package install

執(zhí)行install的時(shí)候 compile test package都會(huì)執(zhí)行

need-to-insert-img

圖片.png

clean的生命周期

maven對(duì)項(xiàng)目構(gòu)建過(guò)程分為三套相互獨(dú)立的生命周期趴生。

CleanLifecycle 在進(jìn)行真正的構(gòu)建之前進(jìn)行一些清理工作

Default Lifecycle 構(gòu)建的核心部分阀趴,編譯,測(cè)試苍匆,打包刘急,部署等

SiteLifecycle 生成項(xiàng)目報(bào)告,站點(diǎn) 發(fā)布站點(diǎn)

need-to-insert-img

各階段生命周期

不同的生命周期命令可以同時(shí)執(zhí)行

mvn cleanpackage

構(gòu)建Maven項(xiàng)目 IDE:Intelij idea

創(chuàng)建項(xiàng)目

need-to-insert-img

創(chuàng)建項(xiàng)目

選擇maven

need-to-insert-img

選擇maven

填寫項(xiàng)目信息

need-to-insert-img

圖片.png

添加tomcat插件

增加war打包

need-to-insert-img

圖片.png

添加web目錄 注意 這個(gè)目錄在main/webapp/

need-to-insert-img

創(chuàng)建web目錄

創(chuàng)建web資源目錄

need-to-insert-img

web資源

在pom.xml添加tomcat插件

need-to-insert-img

pom.xml配置

項(xiàng)目啟動(dòng)配置

編輯配置

need-to-insert-img

編輯配置

添加+ 選擇maven

need-to-insert-img

圖片.png

配置maven命令

need-to-insert-img

配置maven命令

配置maven倉(cāng)庫(kù)

need-to-insert-img

配置maven倉(cāng)庫(kù)

在webapp下添加index.html

need-to-insert-img

圖片.png

啟動(dòng)項(xiàng)目

need-to-insert-img

圖片.png

need-to-insert-img

圖片.png

參考大神文章:https://my.oschina.net/u/2935623/blog/1803198

maven坐標(biāo)定義

每個(gè)maven工程都需要定義本工程的坐標(biāo)浸踩,坐標(biāo)是maven對(duì)jar包身份定義:

<!--項(xiàng)目名稱叔汁,定義為組織名+項(xiàng)目名 類似包名-->cn.probuing.maven<!--模塊名稱-->maven_tx<!--當(dāng)前項(xiàng)目版本號(hào)-->1.0-SNAPSHOT<!--打包類型-->war* jar:執(zhí)行package會(huì)打成jar包? ? * war:執(zhí)行package會(huì)打成war包? ? * pom:用于maven工程的集成,通常父工程設(shè)置為pom

maven與Struts2整合

使用struts2與maven傳遞一個(gè)客戶id 跳轉(zhuǎn)頁(yè)面

創(chuàng)建項(xiàng)目

need-to-insert-img

創(chuàng)建項(xiàng)目

設(shè)置packaging 為war

<?xml version="1.0"encoding="UTF-8"?>4.0.0cn.probuing.crmmavenProj1.0-SNAPSHOTwar

添加web目錄

need-to-insert-img

圖片.png

添加tomcat插件

org.apache.tomcat.maventomcat7-maven-plugin2.28080/mavssh

添加依賴 管理jar包

<!--依賴管理-->org.apache.strutsstruts2-core2.3.24javax.servletjsp-api2.0providedjavax.servletservlet-api2.5providedjunitjunit4.10

為避免包沖突,添加servlet-api.jar和jsp-api.jar 注意選擇scope為provided

配置struts2

struts.xml src/main/resources/

<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC

? ? "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

? ? "http://struts.apache.org/dtds/struts-2.3.dtd"><!-- 配置常量 --><!-- 字符集 --><!-- 開發(fā)模式 --><!-- 主題 --><!-- 擴(kuò)展名 --><!-- 通用package -->/info.jsp

web.xml 核心過(guò)濾器

struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*

編寫action

publicclassCutomerActionextendsActionSupport{privateLong custId;publicLonggetCustId(){returncustId;? ? }publicvoidsetCustId(Long custId){this.custId = custId;? ? }publicStringfindById(){returnSUCCESS;? ? }}

jsp

<%@ page contentType="text/html;charset=UTF-8"language="java"%>TitleHello Every body it's from maven

依賴范圍

Compile

編譯時(shí)需要据块,測(cè)試時(shí)需要码邻,運(yùn)行時(shí)需要,打包時(shí)需要

Provided

編譯時(shí)需要另假,測(cè)試時(shí)需要像屋,運(yùn)行時(shí)不需要,打包時(shí)不需要

Runtime

編譯時(shí)不需要边篮,測(cè)試時(shí)需要己莺,運(yùn)行時(shí)需要,打包時(shí)需要

Test

編譯時(shí)不需要戈轿,測(cè)試時(shí)需要凌受,運(yùn)行時(shí)不需要,打包也不需要

整合框架時(shí)依賴沖突的解決

在我們整合框架的時(shí)候思杯,在集成了多個(gè)框架的時(shí)候可能會(huì)出現(xiàn)依賴沖突的情況胜蛉,我們解決依賴沖突主要有以下幾個(gè)方式

第一聲明優(yōu)先原則

優(yōu)先聲明的會(huì)先進(jìn)行配置,如下配置中Maven會(huì)集成spring-beans-4.2.4的依賴庫(kù)

<!--? spring-beans-4.2.4 -->org.springframeworkspring-context4.2.4.RELEASE<!--? spring-beans-3.0.5 -->org.apache.strutsstruts2-spring-plugin2.3.24

路徑優(yōu)先原則

自己指定jar包

org.springframeworkspring-beans4.2.4.RELEASE

添加排除

使用標(biāo)簽可以指定排除沖突的庫(kù)

org.apache.strutsstruts2-spring-plugin2.3.24org.springframeworkspring-beans

版本鎖定原則

<!--定義變量配置-->4.2.4.RELEASE5.0.7.Final2.3.24<!-- 鎖定版本色乾,struts2-2.3.24誊册、spring4.2.4、hibernate5.0.7 -->org.springframeworkspring-context${spring.version}

分模塊開發(fā)

依賴傳遞

依賴傳遞

依賴關(guān)系

父工程

模塊工程

依賴模塊工程的模塊工程

在這里需要注意的是 對(duì)于有些工程 定義的 依賴的生命周期為scope為test的依賴杈湾,需要手動(dòng)添加到依賴中

作者:So_ProbuING

鏈接:http://www.reibang.com/p/6befb7cf32f8

來(lái)源:簡(jiǎn)書

簡(jiǎn)書著作權(quán)歸作者所有解虱,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漆撞,一起剝皮案震驚了整個(gè)濱河市殴泰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浮驳,老刑警劉巖悍汛,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異至会,居然都是意外死亡离咐,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門奉件,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宵蛀,“玉大人,你說(shuō)我怎么就攤上這事县貌∈跆眨” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵煤痕,是天一觀的道長(zhǎng)梧宫。 經(jīng)常有香客問(wèn)我接谨,道長(zhǎng),這世上最難降的妖魔是什么塘匣? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任脓豪,我火速辦了婚禮,結(jié)果婚禮上忌卤,老公的妹妹穿的比我還像新娘扫夜。我一直安慰自己,他們只是感情好驰徊,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布历谍。 她就那樣靜靜地躺著,像睡著了一般辣垒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上印蔬,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天勋桶,我揣著相機(jī)與錄音,去河邊找鬼侥猬。 笑死例驹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的退唠。 我是一名探鬼主播鹃锈,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瞧预!你這毒婦竟也來(lái)了屎债?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垢油,失蹤者是張志新(化名)和其女友劉穎盆驹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滩愁,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躯喇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硝枉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廉丽。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖妻味,靈堂內(nèi)的尸體忽然破棺而出正压,到底是詐尸還是另有隱情,我是刑警寧澤弧可,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布蔑匣,位于F島的核電站劣欢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏裁良。R本人自食惡果不足惜凿将,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望价脾。 院中可真熱鬧牧抵,春花似錦、人聲如沸侨把。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)秋柄。三九已至获枝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骇笔,已是汗流浹背省店。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笨触,地道東北人懦傍。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像芦劣,于是被迫代替她去往敵國(guó)和親粗俱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Maven簡(jiǎn)介 是apache下的一個(gè)開源項(xiàng)目虚吟,是純java開發(fā)寸认,并且只是用來(lái)管理java項(xiàng)目的 Maven好處 ...
    So_ProbuING閱讀 592評(píng)論 0 0
  • 簡(jiǎn)介 概述 Maven 是一個(gè)項(xiàng)目管理和整合工具 Maven 為開發(fā)者提供了一套完整的構(gòu)建生命周期框架 Maven...
    閩越布衣閱讀 4,275評(píng)論 6 39
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)串慰,斷路器废麻,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 序 由于Andoird的UI元素采用的單一線程模型掂碱,只能在UI線程進(jìn)行更新怜姿,于是我們用來(lái)更新UI,常用Handle...
    andChen閱讀 526評(píng)論 0 3