maven的安裝配置超詳細教程【含nexus】

1 下載

下載地址: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文件

 

2 安裝

maven的安裝很是的簡單,一步搞定。

解壓下載的安裝文件到一個沒有中文沒有空格的文件夾裏,解壓後的目錄以下

3 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

出現下面的效果,說明安裝成功。

 

4 Maven倉庫

Maven的工做須要從倉庫下載一些jar包,以下圖所示,本地的項目A,項目B以及其它項目都活經過

Maven軟件從遠程(能夠理解爲互聯網上的倉庫)下載jar包並保存在本地倉庫,本地倉庫,就是本地

文件夾,當第二次須要這些jar包的時候,就不在須要從遠程倉庫下載,由於本地倉庫以及存在了,

能夠將本地倉庫理解爲緩存,有了本地倉庫就不用每次從遠程倉庫下載了。

maven有三種倉庫,它們分別是本地倉庫,遠程倉庫,中央倉庫。

1 本地倉庫(本身維護)

1.本地倉庫(本身維護):用來存儲從遠程倉庫或者中央倉庫下載的插件或者jar包,項目使用插件或者jar包的時候,優先從本地倉庫查找。
默認位置${user.home}/.m2/repository 也就是:C:\Users\jepson\.m2\repository

 

2.遠程倉庫(公司維護)

若是本地須要插件或者jar包的時候,本地倉庫沒有,這個時候默認去遠程倉庫下載。

遠程倉庫能夠在互聯網上,也能夠在局域網內。

 

3.中央倉庫(maven團隊維護)

在咱們安裝的maven軟件中內置了一個遠程倉庫地址:http://repo1.maven.org/maven2,

它就是中央倉庫,服務與整個互聯網,它是由maven團隊本身維護,裏面存儲了很是全

的jar包,它包含了世界上大部分流行的開源項目構建,統計數量至少超過2億。

 

4. 配置本地倉庫

 新建一個名爲repository的文件夾

在settings.xml文件中配置本地倉庫的位置:

配置前:

配置後:

5. 三種倉庫的關係

5 Maven插件在eclipse上的安裝

我本地使用的eclipse mars 2 版本,此版本自帶maven插件不用安裝。

1 查看Maven插件是否存在

在新建窗口中能夠看到maven項目的建立項,就表示maven插件以及存在。

2 指定maven的安裝目錄

 在一些高版本的eclipse中已經安裝好了maven插件,下圖是eclipse mars 2吧呢不能中已經安裝的

maven3.3.3版本,項目爲了贊成maven的版本不會使用eclipse內置的maven版本,這裏我是使用

的maven3.5.3.

指定maven的安裝目錄,使用maven3.5.3版本。

 

3 User Settings配置

 在eclipse中配置使用的maven的setting.xml文件,使用maven安裝目錄下的setting.xml文件。

 

注意:若是修改了setting.xml文件,須要點擊上圖中的「update settings"按鈕對本地倉庫重建索引,點擊Reindex.

4 eclipse中瀏覽maven倉庫

 maven配置完成須要測試在eclipse中是否能夠瀏覽maven的本地倉庫,若是能夠正常瀏覽

maven本地倉庫,怎說說明eclipse集成maven已經完成。

打開eclipse倉庫視圖,對插件和jar包創建索引。

找到Local repository本地倉庫項,點擊Reindex index重建索引。

重建索引完成後,便可查看本地倉庫的內容:

 

6 私服

1 私服是什麼?

公司在本身的局域網內搭建本身的遠程倉庫服務器,稱爲私服。

私服服務器便是公司內部的maven遠程倉庫,每一個員工共的電腦上安裝maven軟件而且連接私服服務器,

員工將本身開發的項目打成jar併發布到私服服務器,其它項目組從私服服務器下載所依賴的構件(jar)

私服還充當一個代理服務器,當私服上沒有jar包,則會從互聯網中央倉庫自動下載。

2 爲何要安裝私服?

正式的開發中,項目基本都是分模塊開發的,不一樣的項目組負責開發不一樣的工程。

例如:A項目組負責maven-dao工程,開發完畢,發不到私服。

           B項目組負責maven-service,就能夠直接從私服下載dao.

 

7 搭建私服環境

 Nexus是Maven倉庫管理器,經過nexus能夠搭建maven倉庫,同時nexus還提供強大的倉庫管理功能,構建搜索功能等。

1 下載

nexus下載地址:https://www.sonatype.com/download-oss-sonatype

界面效果以下:我下載的是windows版本的2.x,目前的最新版本是3.x

2 安裝nexus

下載文件

解壓上面的壓縮文件到E:\develop\maven\nexus下,以下圖:

 

解壓完成以後,進入E:\develop\maven\nexus\nexus-2.14.8-01\bin

打開命令行進入當前目錄,執行nexus.bat install

1.儘可能以管理員的身份打開命令行

2.執行命令

3.查看nexus服務

3.卸載nexus

4.啓動nexus

5.查看nexus的配置文件

6.訪問

http://localhost:8081/nexus/

7 登陸

使用nexus內置帳戶登陸admin/admin123:

點擊右上角的login in ,輸入帳號和密碼登陸

8.查看倉庫

9.nexus的倉庫類型

nexus的倉庫有四種類型:

nexus倉庫默認在sonatype-work目錄中,

central:代理倉庫,代理中央倉庫。

 

8 將項目發佈到私服

1 需求

2 配置

添加到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>

3 測試

    將項目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刪除便可。

9 從私服下載jar包

1 需求

2 管理倉庫組

 

 

3.在setting.xml中配置倉庫

打開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>

 

4 測試

首先咱們將本地倉庫中的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了。

相關文章
相關標籤/搜索