下載地址:http://maven.apache.org/download.cgilinux
界面效果以下:apache
點擊以後進入的apache 軟件基金的發佈目錄,在這裏你能夠下載apache的全部項目。windows
咱們如今要下載maven,只須要找到maven目錄就能夠了。緩存
找到maven目錄進入以後的效果是下面這樣的,咱們想要下載3版本,就點擊maven-3就能夠了。服務器
進去以後能夠看到3系列的最新版本是3.5.3,併發
這裏咱們就使用最新版本3.5.3eclipse
這裏在強調了maven3.5.3須要的jdk的版本是1.7及其以上。maven
下面貼上maven版本和jdk版本的對應關係表,方便參考。測試
進入maven-3.5.3目錄,看到裏面的目錄結構以下:url
binaries裏面是安裝文件,包括windows版本和linux版本兩個安裝文件
能夠根據我的須要下載,我後文講的windows上面的安裝,因此下載的apache-maven-3.5.3-bin.zip文件
maven的安裝很是的簡單,一步搞定。
解壓下載的安裝文件到一個沒有中文沒有空格的文件夾裏,解壓後的目錄以下
要配置 jdk, maven3.5.3 這個版本所需的 jdk 版本必需要 1.7 以上
最終要運行的是 maven 軟件中 bin 目錄的 mvn 命令
因此要配置 maven 的環境變量
在系統變量添加
環境變量的名稱:MAVEN_HOME
變量值:就是 maven 軟件解壓的目錄E:\develop\maven\apache-maven-3.5.3
再path路徑下面加入以下內容:%MAVEN_HOME%\bin
驗證maven是否配置成功
打開dos命令行,輸入mvn -v
出現下面的效果,說明安裝成功。
Maven的工做須要從倉庫下載一些jar包,以下圖所示,本地的項目A,項目B以及其它項目都活經過
Maven軟件從遠程(能夠理解爲互聯網上的倉庫)下載jar包並保存在本地倉庫,本地倉庫,就是本地
文件夾,當第二次須要這些jar包的時候,就不在須要從遠程倉庫下載,由於本地倉庫以及存在了,
能夠將本地倉庫理解爲緩存,有了本地倉庫就不用每次從遠程倉庫下載了。
maven有三種倉庫,它們分別是本地倉庫,遠程倉庫,中央倉庫。
1.本地倉庫(本身維護):用來存儲從遠程倉庫或者中央倉庫下載的插件或者jar包,項目使用插件或者jar包的時候,優先從本地倉庫查找。
默認位置${user.home}/.m2/repository 也就是:C:\Users\jepson\.m2\repository
若是本地須要插件或者jar包的時候,本地倉庫沒有,這個時候默認去遠程倉庫下載。
遠程倉庫能夠在互聯網上,也能夠在局域網內。
在咱們安裝的maven軟件中內置了一個遠程倉庫地址:http://repo1.maven.org/maven2,
它就是中央倉庫,服務與整個互聯網,它是由maven團隊本身維護,裏面存儲了很是全
的jar包,它包含了世界上大部分流行的開源項目構建,統計數量至少超過2億。
新建一個名爲repository的文件夾
在settings.xml文件中配置本地倉庫的位置:
配置前:
配置後:
我本地使用的eclipse mars 2 版本,此版本自帶maven插件不用安裝。
在新建窗口中能夠看到maven項目的建立項,就表示maven插件以及存在。
在一些高版本的eclipse中已經安裝好了maven插件,下圖是eclipse mars 2吧呢不能中已經安裝的
maven3.3.3版本,項目爲了贊成maven的版本不會使用eclipse內置的maven版本,這裏我是使用
的maven3.5.3.
指定maven的安裝目錄,使用maven3.5.3版本。
在eclipse中配置使用的maven的setting.xml文件,使用maven安裝目錄下的setting.xml文件。
注意:若是修改了setting.xml文件,須要點擊上圖中的「update settings"按鈕對本地倉庫重建索引,點擊Reindex.
maven配置完成須要測試在eclipse中是否能夠瀏覽maven的本地倉庫,若是能夠正常瀏覽
maven本地倉庫,怎說說明eclipse集成maven已經完成。
打開eclipse倉庫視圖,對插件和jar包創建索引。
找到Local repository本地倉庫項,點擊Reindex index重建索引。
重建索引完成後,便可查看本地倉庫的內容:
公司在本身的局域網內搭建本身的遠程倉庫服務器,稱爲私服。
私服服務器便是公司內部的maven遠程倉庫,每一個員工共的電腦上安裝maven軟件而且連接私服服務器,
員工將本身開發的項目打成jar併發布到私服服務器,其它項目組從私服服務器下載所依賴的構件(jar)
私服還充當一個代理服務器,當私服上沒有jar包,則會從互聯網中央倉庫自動下載。
正式的開發中,項目基本都是分模塊開發的,不一樣的項目組負責開發不一樣的工程。
例如:A項目組負責maven-dao工程,開發完畢,發不到私服。
B項目組負責maven-service,就能夠直接從私服下載dao.
Nexus是Maven倉庫管理器,經過nexus能夠搭建maven倉庫,同時nexus還提供強大的倉庫管理功能,構建搜索功能等。
nexus下載地址:https://www.sonatype.com/download-oss-sonatype
界面效果以下:我下載的是windows版本的2.x,目前的最新版本是3.x
下載文件
解壓上面的壓縮文件到E:\develop\maven\nexus下,以下圖:
解壓完成以後,進入E:\develop\maven\nexus\nexus-2.14.8-01\bin
打開命令行進入當前目錄,執行nexus.bat install
1.儘可能以管理員的身份打開命令行
2.執行命令
3.查看nexus服務
http://localhost:8081/nexus/
使用nexus內置帳戶登陸admin/admin123:
點擊右上角的login in ,輸入帳號和密碼登陸
nexus的倉庫有四種類型:
nexus倉庫默認在sonatype-work目錄中,
central:代理倉庫,代理中央倉庫。
添加到settings.xml中
<server> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server>
在setting.xml文件中找到一個<servers>的標籤:
去掉中間的註釋,而後將上面提供的代碼拷貝到裏面去:
注意上面的id是從下面這裏來的
<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>
將項目dao工程打成jar包發佈到私服:
1.首先啓動nexus
2.對bos-dao工程執行deploy命名。
根據本項目pom.xml中version定義決定發佈到那個倉庫,若是version定義爲snapshot,
執行deploy後查看nexus的snapshot倉庫,若是version定義爲release則項目將發佈到
nexus的release倉庫,本項目將發佈到snapshot倉庫:
下面查看一下:
也可去本地查看:
若是想要將發佈到私服的bos-dao.jar包刪除, 只需將E:\develop\maven\nexus\sonatype-work\nexus\storage\snapshots
下的com/test/bos-dao刪除便可。
打開setting.xml配置文件,找到裏面的profiles標籤,中間部分的註釋內容能夠所有刪除掉,而後加入咱們本身的內容。
配置完成後的效果:
<profiles> <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> </profiles>
使用profile定義倉庫須要激活才能生效。
<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>
首先咱們將本地倉庫中的bos-dao的jar包刪除。
而後bos-service開始就會報錯,提示確實了bos-dao.jar。
而後執行maven --->update project發現又好了,而且回到倉庫中發現又有了bos-dao.jar
在maven-console也能夠看到它會去個人私服上下載東西。
一個問題:是否是咱們的bos-dao只要有改動就須要發佈到私服上面去呢?
答:不是的,只有在bos-service模塊須要dao開發新的工程的時候,才須要去改動的,而且須要注意的是,改動以後的版本號
也要改變,若是你仍是用<version>0.0.1-SNAPSHOT</version>,bos-service也不知道你這是新的代碼,就不會去私服上去下載。
由於和bos-service本地的版本號一直。因此有了修改以後,是要修改版本號的,好比<version>0.0.2-SNAPSHOT</version>.
這個時候只要bos-dao告訴bos-service團隊咱們的bos-dao發佈了新版本,bos-service團隊就能夠去使用新版本0.0.2了。