作者:13
GitHub:https://github.com/ZHENFENG13
版權聲明:本文為原創文章,未經允許不得轉載。
前言
項目展示地址,點這里http://ssm-demo.13blog.site,賬號:admin 密碼:123456
下一篇文章開始,所有的項目源碼都是與maven整合后的代碼了,所以這一篇講一講maven。
簡單介紹
我們看一下github上一些開源項目的目錄結構,下圖中有mybatis、netty、dubbo這些比較有影響的項目,在每個項目中都可以看到一個pom.xml文件,這就是maven的配置文件。
那么maven是什么呢?
百度百科中是這么說的
Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。
當然,繼續看下去,還是會有很多專業名詞,如果你是剛入門的話,可以暫時不去看這些,有時間可以慢慢研究。其實Maven是一個項目管理和整合的工具,並且為開發者提供了一套完整的構建生命周期框架。
使用感受
以前經常碰到的情況就是,往往一個跳槽來的新同事會問,“用過maven嗎?怎么不用maven?”等問題,也是有些尷尬的搭不上話,偶爾在網上看代碼的時候也會看到maven項目,但是不會用。那時候也就是因為剛入行,人比較懶吧,也不去看不去學。其實很多人一開始對於maven的印象,認為maven就是一個下載jar包的插件而已,我一開始也是一樣,並不是太在意,上手了一段時間后,才體會到maven不僅僅是一個管理jar包依賴的工具。
按我的理解,maven有茫茫多的好處,比如:
- 方便管理各種庫文件依賴
- 標准化構建流程
- 提升開發者效率
- 在持續集成中扮演重要作用。
對於開發效率和部署效率的提升真的是使我印象深刻,流程的標准化也可以減少很多人為因素可能帶來的錯誤,當然,如果還沒有上手過maven項目的來說,我的建議最好是趕緊將maven整合進項目中,以上的種種好處你也會慢慢體驗到,而且網上教程資源那么多,完全不用擔心無法入門,想要進階的話也可以看看《Maven實戰》這本書。
在這篇文章中我也只是簡單講一下自己對於maven的使用心得,總結的有些簡單,其實是想告訴看到此文的你,像maven、gradle這些可以明顯提升開發效率的工具真的要用到項目中,一個高效率的工作狀態應該是我們每一個技術人的追求。
安裝與整合
大致總結了以下步驟:
- 1、下載官方文件
- 2、解壓並配置maven的環境變量
- 3、執行maven -v 驗證
- 4、與開發軟件整合
windows下maven的安裝點這里
linux下maven的安裝點這里
安裝后就是與eclipse或者idea等開發軟件整合的事情啦。
eclipse與maven整合點這里
idea與maven整合點這里
這些都是需要自己花點時間去研究的東西,而且網上教程也多,就直接放了感覺不錯的教程的鏈接地址。
Maven倉庫
由於默認的倉庫地址是國外網址,會對下載速度有一定的影響,下載jar包時,如果沒有將倉庫設置為國內鏈接的話,可能會導致下載慢的情況,這種情況也很好解決,設置國內鏡像或者國內倉庫,當然也可以自己搭建私服,有時間的話會單獨寫一個搭建私服的文章,想了解的也可以自己先搜一下相關教程。
推薦一個搜索jar包的maven依賴時常用地址:http://mvnrepository.com/
幾個國內可用的maven repository連接:
http://maven.oschina.net/content/groups/public/
http://maven.oschina.net/content/repositories/thirdparty/
首推的是阿里雲的Maven倉庫地址:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
setting.xml文件
settings.xml文件是用來設置maven參數的配置文件,並且,settings.xml是maven的全局配置文件,而pom.xml文件是所在項目的局部配置。
settings.xml中包含類似本地倉儲位置、修改遠程倉儲服務器、認證信息等配置。
關於setting.xml介紹可以看一下這篇文章
下面是一個settings.xml的示例文件:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地倉庫:本地存放jar包的文件夾位置 -->
<localRepository>/xx/xx</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<!--加速鏡像,也可以考慮阿里雲的maven鏡像 -->
<mirrors>
<mirror>
<id>UK</id>
<mirrorOf>central</mirrorOf>
<url>http://uk.maven.org/maven2</url>
</mirror>
<mirror>
<id>net-cn</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.net.cn/content/groups/public/</url>
</mirror>
<mirror>
<id>osc</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>osc</id>
<activation>
<!--當前使用的遠程倉庫為osc-->
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>osc</id>
<!--當前使用的遠程倉庫地址 -->
<url>http://maven.oschina.net/content/groups/public/</url>
</repository>
<repository>
<id>osc_thirdparty</id>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>osc</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>net-cn</id>
<repositories>
<repository>
<id>net-cn</id>
<url>http://maven.net.cn/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>net-cn</id>
<url>http://maven.net.cn/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>