maven倉庫--搭建區域網路私服(windows版)

來源:互聯網
上載者:User

標籤:存在   name   下載   版本   分配   檔案引入   always   type   director   

使用nexus搭建區域網路私服一. 認識maven倉庫1.1 maven倉庫的作用

  回想之前不用maven的時候,我們用eclipse原始的項目骨架構建項目時,在工程目錄下往往有一個lib檔案夾用來存放工程所需jar檔案,每次建一個新工程時都會有這樣一個lib檔案夾。然後將jar複製進lib檔案夾配置路徑,很顯然有大量的重複工作,而且不同項目所用jar包不盡相同,需要我們慢慢去分辨。而後我們用了專案管理工具比如svn或者git,我們需要把把大量的jar檔案引入程式碼程式庫,這也不是一件很合適的事。
  而maven能夠幫我們解決這些問題,maven倉庫是專門用來存放jar檔案的位置(也可以用來存放項目war,zip,pom等檔案)。maven倉庫中為每個jar檔案分配了一個座標,比如jstl的jar包:

<groupId>javax.servlet</groupId>        組ID<artifactId>jstl</artifactId>           構建ID...  其餘屬性後續介紹

 

這樣做的話,maven能很方便的進行項目依賴版本的控制。簡單說maven倉庫就是幫我們統一管理項目構件。

1.2 maven倉庫分類

  項目構建的查詢路徑:首先查詢本地倉庫,未找到就會查詢中央倉庫,沒找到就會報錯。中央倉庫地址有:

  1. http://www.sonatype.org/nexus/ 私服nexus用
  2. http://mvnrepository.com/ 推薦使用
  3. http://repo1.maven.org/maven2
    上面三個是較為常見的,也是項目中使用較多的,但是由於下載速度太慢,並且倉庫的jar檔案不完整,實際企業開發需要我們搭建私服倉庫。
二. 安裝使用nexus

  這裡注意搭建maven私服不僅僅只有這一種工具。博主用的版本是nexus-2.12.0。

  1. 點擊下載,密碼: 1ar1
  2. 下載完成後解壓即可,解壓完成到目錄nexus-2.12.0-01-bundle\nexus-2.12.0-01\bin\jsw下可以看到:
  3. 博主電腦是64位所以開啟最後一個檔案夾:
  4. 點擊第二個bat檔案設定為windows服務,開啟nexus後訪問網址: http://localhost:8081/nexus/啟動後開啟如下頁面,即代表nexus安裝並啟動成功。
三. 配置maven私服
  1. 點擊右上方Login登陸,初始帳號為admin,密碼是admin123 登陸成功可修改帳號密碼,自己找。
  2. 點擊左邊的導航Respositories。

    可以看到預設有一些倉庫,倉庫類型Type的意義:
  • hosted 宿主倉庫,用來發布一些第三方不允許的組件,比如oracle驅動等商業軟體的jar包
  • proxy 代理遠端倉庫,比如上面寫得三個maven遠程倉庫。如果本地不存在某些jar檔案時就會到這些代理網站去下載。
  • releases 內部的模組中release模組的發布倉庫
  • snapshots 發布內部的snapshot模組的倉庫
  • 3rd party 第三方依賴的倉庫,本地上傳jar包後使用
  • group 組倉庫,用來添加其他的倉庫,方便開發人員設定
    開始搭建私服倉庫,值得注意的是:maven項目索引:maven項目索引就是用來方便在私服網站尋找相關依賴構建的功能。所以在搭建私服之前,應該下載maven索引,大概幾十M:

    將Download Remote Indexs屬性改成True,然後點擊save即可,可以在功能表列Scheduled Tasks查看下載索引的進度。
    3.添加自己代理的遠程庫,有時候我們的項目需要引入一些特殊的jar檔案,比如Jboss的某些jar包,這時候也可以在私服中代理該遠程倉庫:

    點擊add後添加代理類型,依次填寫id,name和url,這樣的話,在項目中不再需要配置遠程倉庫:
<repository>    <id>jboss</id>    <name>JBoss Repository</name>    <url>http://repository.jboss.com/maven2/</url>    <releases>        <updatePolicy>daily</updatePolicy><!-- never,always,interval n -->        <enabled>true</enabled>        <checksumPolicy>warn</checksumPolicy><!-- fail,ignore -->    </releases>    <snapshots>        <enabled>false</enabled>    </snapshots>    <layout>default</layout></repository>

 

4.宿主倉庫的使用,上面提到的一些特殊的商業性質相關的jar檔案,比如oracle的驅動包,ojdbc.jar並不支援遠程下載,這時候可以將我們本地下載好的jar包上傳到私服。

注意GAV設定要與你pom.xml中一致,上傳後添加到Artifacts點擊上傳即可:

5.由於私服倉庫數量過多,導致配置複雜度提高,所以需要用到上述的group類型倉庫:

切記點擊重新整理,重新整理後點擊唯一的一個group倉庫,點擊配置Configuration就可以看到剛才我們手動添加的代理倉庫,然後將代理倉庫添加到組倉庫,這樣依賴,項目中之需要配置組倉庫的url就可以訪問多個私服倉庫。

四. 區域網路使用maven私服4.1 單個項目使用maven私服

在上述步驟完成後,即可在項目中引用私服,pom.xml中改變預設下載倉庫url:
指定私服倉庫,我的ip是170,不要全盤複製

<repositories>      <repository>          <id>nexus</id>          <name>nexus</name>          <url>http://192.168.1.170:8081/nexus/content/groups/public/</url>          <releases>              <enabled>true</enabled>          </releases>          <snapshots>              <enabled>true</enabled>          </snapshots>      </repository>  </repositories>

 

指定外掛程式倉庫

<pluginRepositories>      <pluginRepository>          <id>nexus</id>          <name>nexus</name>          <url>http://192.168.1.170:8081/nexus/content/groups/public/</url>          <releases>              <enabled>true</enabled>          </releases>          <snapshots>              <enabled>true</enabled>          </snapshots>      </pluginRepository>  </pluginRepositories>

 

配置好之後就可以從私服下載依賴包了。但是這種方式只能在改項目中起作用,每次設定項目都需要寫兩遍,為了將懶人模式進行到底,我們還可以指定全域的私人倉庫。

4.2 全域指定私服

找到maven檔案的中的setting.xml檔案

在setting.xml中添加配置:
在<profiles>標籤下添加

<profile>    <repositories>        <id>central</id>        <name>central</name>        <url>http://192.168.1.170:8081/nexus/content/groups/public/</url>        <layout>default</layout>        <releases>            <enabled>true<enabled>        </releases>        <snapshots>            <enabled>true<enabled>        </snapshots>    </repositories></profile>

 

配置好之後啟用profile

<activeProfiles>      <activeProfile>central</activeProfile>  </activeProfiles>

 

這樣一來,這台電腦上所有maven項目下載jar檔案時都會先訪問區域網路170的電腦。
-----------------------------------windows配置私服完畢-----------------------------------
擴充:setting,xml中各標籤的意義:

1.servers(伺服器)

<servers>    <server>        <id>server001</id>        <username>my_login</username>        <password>my_password</password>        <privateKey>${usr.home}/.ssh/id_dsa</privateKey>        <passphrase>some_passphrase</passphrase>        <filePermissions>664</filePermissions>        <directoryPermissions>775</directoryPermissions>        <configuration></configuration>    </server></servers>

id與pom.xml中distributionManagement的id保持一致,伺服器標識
username和password表示伺服器認證需要的使用者民和密碼
privateKey, passphrase一組密鑰 (不常用)
filePermissions, directoryPermissions如果在部署的時候會建立一個倉庫檔案或者目錄,這時候就可以使用許可權(不常用)
2.mirrors(鏡像)

<mirrors>    <mirror>        <id>planetmirror.com</id>        <name>PlanetMirror Australia</name>        <url>http://downloads.planetmirror.com/pub/maven2</url>        <mirrorOf>central</mirrorOf>    </mirror></mirrors>

 

設定一個中央倉庫的鏡像,看倉庫分類,也是遠程倉庫的一種配置方式。
3.profiles(構建環境)
這個可能比較難理解,maven權威指南一書中這樣說:

  Profile能讓你為一個特殊的環境自訂一個特殊的構建;
  構建環境的兩個例子是產品環境和開發環境。當你在開發環境中工作時,你的系統可能被配置成訪問運行在你原生開發資料庫執行個體,而在產品環境中,你的系統被配置成從產品資料庫讀取資料。Maven能讓你定義任意數量的構建環境(構建profile),這些定義可以覆蓋pom.xml中的任何配置。

簡單理解就是你可以先profile中先構件好項目啟動並執行環境,比如預設了A環境實在開發中使用,而實際上線是B環境,那麼在上線的時候我們不需要一個個修改pom.xml中的配置,只需要啟用改profile即可。
4.activation(啟用構建環境 )

<activation>    <activeByDefault>false</activeByDefault>    <jdk>1.5</jdk>    <os>        <name>Windows XP</name>        <family>Windows</family>        <arch>x86</arch>        <version>5.1.2600</version>    </os>    <property>        <name>mavenVersion</name>        <value>2.0.3</value>    </property></activation>

 

指定profile中配置的環境在什麼時候開始生效
5.activeProfiles(啟用了的profile)

<activeProfiles><activeProfile>env-test</activeProfile></activeProfiles>

 

在setting.xml最後的一個標籤,表示env-test這個profile已被啟用

以上單純代表博主個人看法,如有理解錯誤或者疑問請拍磚指教。
參考資料:《Maven權威指南》 ,Maven學習 (四) 使用Nexus搭建Maven私服

maven倉庫--搭建區域網路私服(windows版)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.