maven學習(中)- 私服nexus搭建

上回繼續,相信你們對maven每次都聯網從國外站點下載依賴項的龜速網絡已經不坎忍受了,今天先來看看如何搭建"倉庫私服",目前nexus是使用比較普遍的私服軟件之一,下面將介紹基本用法:html

 

1、到nexus官網下載最新版java

1.1 下載地址:http://www.sonatype.org/downloads/nexus-latest-bundle.zip (目前最新版本是2.7.2-03)apache

1.2 下載完後,解壓到指定目錄,好比:c:\java\nexus\windows

1.3 啓動nexus緩存

%nexus_home%\bin\nexus.bat install (安裝成windows服務)服務器

%nexus_home%\bin\nexus.bat start (啓動)網絡

tips : 直接nexus.bat不帶參數,會顯示完整的參數列表eclipse

參考下圖,若是啓用不起來,檢查jdk版本,nexus要求1.7版本(若是版本不對,請調整環境變量JAVA_HOME指向jdk1.7的目錄)maven

若是換成1.7仍是啓用不了,建議用nexus.bat console 控制檯方式啓用,這樣能夠看到詳細啓動過程url

啓動成功後,能夠用http://localhost:8081/nexus 進入控制界面

點擊右上角的Log In,默認用戶名/密碼是admin/admin123

 

2、添加jboss資源庫地址

2.1 先了解下nexus的資源庫類型:

Hosted Repository - nexus本機的資源庫(至關於nexus所在服務器硬盤上已經存在的jar、pom文件庫)

Proxy Repository - 代理庫,不少開源官方組織都在互聯網上公佈了Repository,供全世界的開發者使用,nexus中設置該類型的資源庫後,其它使用nexus的開發者,表面上是在請求nexus服務器上的jar包,但nexus實質是背後是在請求這些互聯網資源,首次會把服務器上沒有的資源,從網上download到nexus服務器(以文件形式保存到硬盤上),而後再返回給開發者,下次再有一樣的pom/jar請求時,直接從服務器硬盤上返回,再也不請求互聯網

Repository Group - 資源組,好比咱們有不少資源庫:資源庫A、資源庫B...,能夠把它們再成組合一個特殊的資源C,而後其它開發人員,在maven裏配置資源C地址,這樣maven在向資源C請求jar包裏,實質會搜索資源A、資源B

 

2.2 添加jboss 代理資源庫

maven默認的官方資源庫http://repo1.maven.org/maven2/,不少第三方的jar包沒有,因此我再添加一個jboss的資源庫

點擊左側的Repositories,而後再點擊右側的Add,會彈出下拉菜單,選擇Proxy Repository

接下來,參考下圖填寫:

Respository ID這裏填寫:jboss-public-repository-group (能夠自已更名字)

Respository Name這裏填寫:JBoss Public Maven Repository Group (能夠自已更名字)

其它項保持默認

Remote Storage Location這裏填寫:https://repository.jboss.org/nexus/content/groups/public-jboss/ (這是jboss公佈的公開資源庫)

 

2.3 下載jboss eap 6.x的離線資源包

首次使用nexus時,私服服務器上實質上沒有任何jar包的緩存,因此第一次使用時,其實跟直接到互聯網上下載沒啥區別,只有後面再請求相同的jar包,服務器上纔會有jar文件緩存,爲了加快速度,咱們能夠直接上jboss官網下載離線資源包

下載地址: htp://www.jboss.org/jbossas/downloads

而後解壓到指定目錄,建議放在 %nexus_home%\sonatype-work\nexus\storage\ 下

而後add一個hosted repository,參考下圖:

 

2.4 把剛纔添加的二個respoitory添加到Public Repositories組

剛纔咱們添加了二個新的資源庫,檢查一下是否包括在默認的Public Repositories組裏

若是沒包括在組裏,參考上圖處理一下,而後保存。最後建議更新一下索引,參考下圖:

 

3、修改本機當前用戶下.m2目錄下的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">

  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>     
      <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
    </mirror>     
  </mirrors>  
  
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>nexus</id>
          <name>Nexus</name>
          <url>http://192.168.0.110: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.0.110:8081/nexus/content/groups/public/</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

 </settings>

注:你們自行把這段xml中的地址換成nexus服務器的ip。

而後隨便建立一個maven項目,執行mvn clean package 之類,觀察下輸出:

從上圖能夠看出,如今依賴項都是從nexus服務器下載的

 

4、eclipse中添加資源xml

最後再補充一個小技巧,這跟私服其實關係不大。每次咱們在eclipse裏建立maven project時,都會彈出一個界面,讓咱們選擇「項目模板「,這個過程須要聯網獲取模板列表,並且每次都次重複獲取,很不合理,以下圖:

能夠點擊Confiure,會彈出如下界面,點擊」Add Local Catalog「

先在瀏覽裏訪問 https://repository.jboss.org/nexus/content/groups/public-jboss/archetype-catalog.xml 這個地址,而後保存爲xml文件,接下面的界面裏 Catalog File裏,選擇這個xml文件,而後Description填寫一個名字

而後在建立Maven項目時,就能夠直接選擇這個了,選擇後,將直接讀取本機xml的內容,比聯網獲取要快得多

相關文章
相關標籤/搜索