文章大綱
一五督、maven功能介紹
二、maven整合javaweb案例
三蛔翅、私服應(yīng)用(了解)
四、總結(jié)
五位谋、相關(guān)資料下載
六山析、參考文章
一、maven功能介紹
1. maven基本介紹
??Maven的Apache公司開源項目掏父,是項目構(gòu)建工具笋轨。用來依賴管理。
1.1 maven的好處
使用傳統(tǒng)項目開發(fā)crm項目赊淑,項目大芯粽:
同樣的項目使用maven開發(fā)
同樣的代碼,實現(xiàn)功能都一樣陶缺,maven項目如何做到的钾挟?可以初步推斷maven項目中一定沒有jar包。沒有jar包的maven項目如何運行饱岸?
Maven項目找jar包過程:
1.2 maven的好處
maven的兩大核心:
依賴管理:對jar包管理過程
項目構(gòu)建:項目在編碼完成后掺出,對項目進行編譯、測試苫费、打包汤锨、部署等一系列的操作都通過命令來實現(xiàn)
通過maven命令將web項目發(fā)布到tomcat:
溫馨提示:使用myeclipse或者IDEA時,maven命令無需出現(xiàn)mvn百框,直接tomcat:run即可闲礼。
1.3 Maven工程的分類
打包方式
常見:jar、war铐维、pom
Jar包
編譯完成柬泽,打包
會打成一個JAR包,用作jar包使用
war包
是一個Web工程
發(fā)布在服務(wù)器上的工程方椎,比如聂抢,網(wǎng)站或服務(wù)
將來我們會將所有的JAR包,打到一起
打到一個war包里面棠众,可以部署到Tomcat上
Pom
聚合工程
一般都是父工程琳疏,管理jar包的版本有决、maven插件的版本、統(tǒng)一的依賴管理
Pom工程中空盼,至少要有一個war包
2. maven安裝书幕、配置本地倉庫
maven程序安裝前提:maven程序java開發(fā),它的運行依賴jdk揽趾。
2.1 maven的下載安裝
下載安裝包
解壓到本地磁盤(解壓目錄不要有中文台汇,空格)
配置環(huán)境變量,Jdk環(huán)境變量:JAVA_HOME
將maven_home環(huán)境變量配置到path環(huán)境變量中
查詢maven的版本信息:
2.2 配置本地倉庫
本地倉庫是指jar包存放的文件夾
2.3 maven配置中央倉庫,阿里云倉庫地址
??使用maven自帶的中央倉庫地址很慢篱瞎,所以我們可以改成國內(nèi)的地址苟呐,比如阿里云,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項目標準目錄結(jié)構(gòu)
對項目中文件進行細分:
4. maven的常用命令(熟練掌握)
4.1 clean:清理
??將項目根目錄下target目錄清理掉。
4.2 compile:編譯
??將項目中.java文件編譯為.class文件
4.3 test:單元測試
??單元測試類名有要求:XxxxTest.java
??將項目根目錄下src/test/java目錄下的單元測試類都會執(zhí)行澄者。
4.4 package:打包
??web project ---- war包
??java project -----jar包
??將項目打包笆呆,打包項目根目錄下taget目錄
4.5 install:安裝
??解決本地多個項目公用一個jar包。
??打包到本地倉庫
4.6 溫馨提示
??使用myeclipse或者IDEA時粱挡,maven命令無需出現(xiàn)mvn赠幕,直接tomcat:run即可。
5 . 依賴范圍(了解)
??依賴范圍:默認是compile
??如果將servlet-api.jar設(shè)置為compile,打包后包含serlvet-api.jar询筏,war包部署到tomcat跟tomcat中存在servlet-api.jar包沖突榕堰。導(dǎo)致運行失敗。
??如果使用到tomcat自帶jar包屈留,將項目中依賴作用范圍設(shè)置為:provided,其他可以默認
6. 傳遞依賴沖突解決(掌握)
6.1 依賴傳遞規(guī)則介紹
??傳遞依賴:A(項目)依賴B斤富,B依賴C(1.1版本)强法,B是A的直接依賴既棺,C就是A的傳遞依賴
導(dǎo)入依賴D冒窍,D依賴C(1.2版本)
6.2 Maven自己調(diào)解原則
第一聲明者優(yōu)先原則
??誰先定義的就用誰的傳遞依賴。
路徑近者優(yōu)先原則
??直接依賴級別高于傳遞依賴勇蝙。
6.3 排除依賴
方法一:
方法二:版本鎖定(推薦使用)
二沫勿、maven整合javaweb案例
1. maven整合web項目案例(熟練掌握)
1.1 配置eclipse中maven環(huán)境
??配置m2e插件,Mars2版本自帶maven插件
??需要配置maven程序
配置userSetting:讓eclipse知道m(xù)aven倉庫位置
1.2 創(chuàng)建maven的javaweb項目
創(chuàng)建好的web項目味混,可能出現(xiàn)以下錯誤:
(1)web.xml缺失
(2)jdk編譯版本1.5产雹,在pom.xml中添加插件
(3)創(chuàng)建servlet,serlvet編譯報錯,原因:缺失servlet-api-xx.jar包
1.3 maven命令運行項目
2. maven對項目進行拆分翁锡、聚合(熟練掌握)
2.1 拆分蔓挖、聚合基本介紹
??對現(xiàn)在已有maven ssh項目進行拆分,拆分思路:將dao層的代碼已經(jīng)配置文件全體提取出來到一個表現(xiàn)上獨立的工程中馆衔。同樣service瘟判、action拆分怨绣。
??ssh-parent: 父工程
??ssh-dao:(子模塊)
??ssh-service
??ssh-web
??拆分完成對拆分后的項目進行聚合,提出概念父工程
2.2 創(chuàng)建父工程
創(chuàng)建好父工程目錄結(jié)構(gòu):只有pom.xml拷获,可以推斷父工程不進行編碼篮撑。
(1)項目需要的依賴的信息,在父工程中定義匆瓜,子模塊繼承過程
(2)將各個子模塊聚合到一起
2.3 將創(chuàng)建父工程發(fā)布到本地倉庫
??將父工程發(fā)布到本地倉庫后赢笨,其他的字工程才能繼承使用
2.4 創(chuàng)建子模塊ssh-dao
溫馨提示:子模塊需要右鍵父項目新建Module。
ssh-dao負責數(shù)據(jù)訪問層:包含dao相關(guān)代碼&配置文件
創(chuàng)建之后驮吱,將ssh-dao發(fā)布到本地倉庫茧妒,給2.5的ssh-service進行依賴
2.5 創(chuàng)建子模塊ssh-service
將ssh-service工程打包到本地倉庫,給2.6的ssh-web項目添加依賴
2.6 創(chuàng)建子模塊ssh-web:war
在ssh-web項目中添加service工程依賴左冬。
2.7 運行方式
??Maven方式:
??方式1:運行父工程嘶伟。父工程將各個子模塊聚合到一起。將ssh-web打war包發(fā)布到tomcat
??方式2:直接運行web工程
??其他方式:部署到tomcat
三又碌、私服應(yīng)用(了解)
1. 私服安裝
下載安裝包
解壓到本地磁盤
使用管理員權(quán)限打開dos,在dos下執(zhí)行命令安裝私服
啟動服務(wù)
找到私服的訪問url
2. 私服倉庫類型
Hosted:宿主倉庫
存放本公司開發(fā)的jar包(正式版本、測試版本绊袋、第三方:存在版權(quán)問題--Oracle)
Proxy:代理倉庫
代理中央倉庫毕匀、Apache下測試版本的jar包
Group:組倉庫
將來連接組倉庫。包含Hosted:宿主倉庫癌别,Proxy:代理倉庫
3. 上傳jar包到私服上(應(yīng)用)
在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>
執(zhí)行命令發(fā)布項目到私服(上傳)
4. 下載jar包到本地倉庫(應(yīng)用)
在maven目錄下conf/settings.xml皂岔。配置模板
<profile>
<!--profile的id-->
<id>dev</id>
<repositories>
<repository>
<!--倉庫id,repositories可以配置多個倉庫展姐,保證id不重復(fù)-->
<id>nexus</id>
<!--倉庫地址躁垛,即nexus倉庫組的地址-->
<url>http://localhost:8081/nexus/content/groups/public/</url>
<!--是否下載releases構(gòu)件-->
<releases>
<enabled>true</enabled>
</releases>
<!--是否下載snapshots構(gòu)件-->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!-- 插件倉庫,maven的運行依賴插件圾笨,也需要從私服下載插件 -->
<pluginRepository>
<!-- 插件倉庫的id不允許重復(fù)教馆,如果重復(fù)后邊配置會覆蓋前邊 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
激活模板
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
四、總結(jié)
Maven好處包括以下幾點
1擂达、不再拷貝jar包土铺。項目不需要存放jar包。導(dǎo)致項目源代碼小
2板鬓、使用maven開發(fā)的工程,如果環(huán)境統(tǒng)一導(dǎo)入別的maven的項目不會報錯
3悲敷、代碼耦合度進一步降低.
4、方便項目進行升級
5俭令、節(jié)省人力成本
五后德、相關(guān)資料下載
鏈接:https://pan.baidu.com/s/1UUCps9Be3n8ZwGOXmVjfgw
提取碼:s15f