nexus3.0&&Maven使用

1、Nexus介紹

     Nexus是一個強大的Maven倉庫管理器,它極大地簡化了自己內部倉庫的維護和外部倉庫的訪問。利用Nexus你可以只在一個地方就能夠完全控制訪問 和部署在你所維護倉庫中的每個Artifact。Nexus是一套“開箱即用”的系統不需要數據庫,它使用文件系統加Lucene來組織數據。Nexus 使用ExtJS來開發界面,利用Restlet來提供完整的REST APIs,通過m2eclipse與Eclipse集成使用。Nexus支持WebDAV與LDAP安全身份認證。

2、安裝部署

2.1  下載地址

http://www.sonatype.com/download-oss-sonatype

2.2  安裝

1、  解壓安裝包

tar –zxvf nexus-3.0.0-03-unix.tar.gz

2、  修改Jdk路徑

Nexus3.0.0的版本需要JDK1.8的版本

a)、cd /data/nexus-3.0.0-03/bin

b)、vi nexus

c)、添加JDK配置

INSTALL4J_JAVA_HOME_OVERRIDE=/data/jdk1.8.0_91

3、  修改使用的用戶

a)、vi nexus.rc

b)、添加配置

   run_as_user=root

4、  啓動nexus服務

./ nexus

2.3 成功驗證

訪問http://XXX:8081,看是否能跳轉到Nexus頁面




---------------------------------------------------------------------------------------------------------------


因爲Nexus3.0.0與Nexus2.X系列的差別很大,所以本章節我大概講解下Nexus3.0.0的功能使用。

1、功能介紹

1.1  Browse Server Content

1.1.1  Search

這個就是類似Maven倉庫上的搜索功能,就是從私服上查找是否有哪些包。

注意:

1、在Search這級是支持模糊搜索的,如圖所示:

2、如果進入具體的目錄,好像不支持模糊搜索,如圖所示:

1.1.2  Browse

1.1.1.1 Assets

這是能看到所有的資源,包含Jar,已經對Jar的一些描述信息。

1.1.1.1 Components

這裏只能看到Jar包。

2.1  Server Adminstration And configuration

看到這選項是要進行登錄的,在右上角點擊“Sign In”的登錄按鈕,輸入admin/admin123,登錄成功之後,即可看到此功能,如圖所示:

 

2.1.1  Repository

2.1.1.1 Blob Stores

文件存儲的地方,創建一個目錄的話,對應文件系統的一個目錄,如圖所示:

 

2.1.1.1 Repositories

2.1.1.1.1Proxy

這裏就是代理的意思,代理中央Maven倉庫,當PC訪問中央庫的時候,先通過Proxy下載到Nexus倉庫,然後再從Nexus倉庫下載到PC本地。

這樣的優勢只要其中一個人從中央庫下來了,以後大家都是從Nexus私服上進行下來,私服一般部署在內網,這樣大大節約的寬帶。

創建Proxy的具體步驟

1、  點擊“Create Repositories”按鈕

 

2、  選擇要創建的類型

 

3、  填寫詳細信息

Name:就是爲代理起個名字

Remote Storage: 代理的地址,Maven的地址爲: https://repo1.maven.org/maven2/

Blob Store: 選擇代理下載包的存放路徑

2.1.1.1.2Hosted
 

Hosted是宿主機的意思,就是怎麼把第三方的Jar放到私服上。

Hosted有三種方式,Releases、SNAPSHOT、Mixed

Releases: 一般是已經發布的Jar包

Snapshot: 未發佈的版本

Mixed:混合的

Hosted的創建和Proxy是一致的,具體步驟可參考2.1.1.1.1

注意事項:

Deployment Pollcy: 我們需要把策略改成“Allow redeploy”。

2.1.1.1.3Group

能把兩個倉庫合成一個倉庫來使用,目前沒使用過,所以沒做詳細的研究。

2.1.2  Security

這裏主要是用戶、角色、權限的配置

 

2.1.3  Support

包含日誌及數據分析。

 

2.1.4  System

主要是郵件服務器,調度的設置地方


---------------------------------------------------------------------------------------------------------------

這章主要講怎麼和Maven做集成,集成的方式主要分以下種情況:代理中央倉庫、Snapshot包的管理、Release包的管理、第三方Jar上傳到Nexus上

1  代理中央倉庫

只要在PMO文件中配置私服的地址即可,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
<repositories>
        <repository>
            <id>maven-central</id>
            <name>maven-central</name>
            <url>http://10.0.1.42:8081/repository/maven-central/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

  

2  Snapshot包的管理

1、  修改Maven的settings.xml文件,加入認證機制

1
2
3
4
5
6
<servers>
<server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
     </server>

 

2、  修改工程的Pom文件

1
2
3
4
5
6
7
8
9
10
11
12
<distributionManagement>
        <snapshotRepository>
            <id>nexus</id>
            <name>Nexus Snapshot</name>
            <url>http://10.0.1.42:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
        <site>
            <id>nexus</id>
            <name>Nexus Sites</name>
            <url>dav:http://10.0.1.42:8081/repository/maven-snapshots/</url>
        </site>
    </distributionManagement>

  

注意事項:

 

截圖中的名字要跟apache-maven-3.0.5-nexus\conf\settings.xml的名字一定要對應上。

3、  上傳到Nexus上

a)、項目編譯成的jar是Snapshot(POM文件的頭部)

1
2
3
4
<groupId>com.woasis</groupId>
<artifactId>test-nexus</artifactId>
<version>1.0.0-SHAPSHOT</version>
<packaging>jar</packaging>

  

b)、使用mvn deploy 即可,運行結果如圖所示:

 

c、因爲Snapshot是快照版本,默認他每次會把Jar加一個時間戳,做爲歷史備份版本。

3  Releases包的管理

a)、與Snapshot大同小異,只是上傳到私服上的Jar包不會自動帶時間戳,如圖所示:

 

b)、與Snapshot配置不同的地方,就是工程的PMO文件,加入repository配置

1
2
3
4
5
6
<distributionManagement>
        <repository>
            <id>nexus</id>
            <name>Nexus Snapshot</name>
            <url>http://10.0.1.42:8081/repository/maven-releases/</url>
        </repository>

  

c)、打包的時候需要把Snapshot去掉,如圖所示:

1
2
3
4
<groupId>com.woasis</groupId>
    <artifactId>test-nexus</artifactId>
    <version>1.0.0</version>
<packaging>jar</packaging>

  

4  第三方Jar上傳到Nexus

1
mvn deploy:deploy-file -DgroupId=org.jasig.cas.client -DartifactId=cas-client-core -Dversion=3.1.3 -Dpackaging=jar -DrepositoryId=nexus -Dfile=D:\cas-client-core-3.1.3.jar -Durl=http://10.0.1.42:8081/repository/maven-releases/-DgeneratePom=false

  

注意事項:

-DrepositoryId=nexus  對應的就是Maven中settings.xml的認證配的名字。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章