1. 程式人生 > >Linux平臺搭建nexus私服

Linux平臺搭建nexus私服

Nexus介紹

  Nexus是一個強大的Maven倉庫管理器,它極大地簡化了自己內部倉庫的維護和外部倉庫的訪問。利用Nexus你可以只在一個地方就能夠完全控制訪問 和部署在你所維護倉庫中的每個Artifact。Nexus是一套“開箱即用”的系統不需要資料庫,它使用檔案系統加Lucene來組織資料。Nexus 使用ExtJS來開發介面,利用Restlet來提供完整的REST APIs,通過m2eclipse與Eclipse整合使用。Nexus支援WebDAV與LDAP安全身份認證。 在這裡插入圖片描述

Nexus安裝部署

基礎環境

  1. 安裝jdk1.8
]#  mkdir /usr/java
]# tar -xf jdk-8u181-linux-x64.tar.gz -C /usr/java
]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_181
export JRE_HOME=$JAVA_HOME/jre 
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME:/bin:$PATH
]# source /etc/profile
  1. 安裝maven
]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
]# tar xf 	apache-maven-3.5.4-bin.tar.gz -C /usr/local/
]# mv apache-maven-3.5.4 maven-3.5.4 
]# vim /etc/profile
export MAVEN_HOME=/usr/local/maven-3.5.4 
export PATH=$PATH:$MAVEN_HOME/bin
]# source /etc/profile
  1. 安裝nexus
]# tar -xf nexus-3.0.0-03-unix.tar.gz -C /usr/local/
]# cd /data/nexus-3.0.0-03/bin
]# vim nexus.rc
run_as_user="root"
]# ./nexus start
  1. 驗證 訪問http://XXX:8081,看是否能跳轉到Nexus頁面 在這裡插入圖片描述

功能介紹

  1. Browse Server Content 在這裡插入圖片描述

search功能 這個類似Maven倉庫上的搜尋功能,就是從私服上查詢是否有哪些包。search功能支援模糊搜尋的 在這裡插入圖片描述 如果進入具體的目錄,好像不支援模糊搜尋 在這裡插入圖片描述

Browse Assets 這能看到所有的資源,包含Jar,已經對Jar的一些描述資訊。 Components 這裡只能看到Jar包。

  1. Server Adminstration And configuration 看到這選項是要進行登入的,在右上角點選“Sign In”的登入按鈕,輸入admin/admin123,登入成功之後,即可看到此功能,如圖所示: 在這裡插入圖片描述 Repository Blob Stores 檔案儲存的地方,建立一個目錄的話,對應檔案系統的一個目錄,如圖所示 在這裡插入圖片描述 Repositories Proxy 這裡就是代理的意思,代理中央Maven倉庫,當PC訪問中央庫的時候,先通過Proxy下載到Nexus倉庫,然後再從Nexus倉庫下載到PC本地。 這樣的優勢只要其中一個人從中央庫下來了,以後大家都是從Nexus私服上進行下來,私服一般部署在內網,這樣大大節約的寬頻。 建立Proxy的具體步驟 點選“Create Repositories”按鈕 在這裡插入圖片描述 選擇要建立的型別 在這裡插入圖片描述 填寫詳細資訊 Name:就是為代理起個名字 Remote Storage: 代理的地址,Maven的地址為: https://repo1.maven.org/maven2/ Blob Store: 選擇代理下載包的存放路徑

Hosted Hosted是宿主機的意思,就是怎麼把第三方的Jar放到私服上。 Hosted有三種方式,Releases、SNAPSHOT、Mixed Releases: 一般是已經發布的Jar包 Snapshot: 未釋出的版本 Mixed:混合的 Hosted的建立和Proxy是一致的,具體步驟可參考2.1.1.1.1 注意事項: Deployment Pollcy: 我們需要把策略改成“Allow redeploy”。 在這裡插入圖片描述 Group 能把兩個倉庫合成一個倉庫來使用,目前沒使用過,所以沒做詳細的研究。 Security 這裡主要是使用者、角色、許可權的配置 Support 包含日誌及資料分析。 System 主要是郵件伺服器,排程的設定地方

###這Maven整合 這章主要講怎麼和Maven做整合,整合的方式主要分以下種情況:代理中央倉庫、Snapshot包的管理、Release包的管理、第三方Jar上傳到Nexus上 代理中央倉庫 只要在PMO檔案中配置私服的地址即可,配置如下:

<repositories>
        <repository>
            <id>maven-central</id>
            <name>maven-central</name>
            <url>http://192.168.0.202:8081/repository/maven-central/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

Snapshot包的管理 修改Maven的settings.xml檔案,加入認證機制

<servers>
<server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
     </server>

修改工程的Pom檔案

<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://192.168.0.202:8081/repository/maven-snapshots/</url>
        </site>
    </distributionManagement>

注意事項: 在這裡插入圖片描述 截圖中的名字要跟apache-maven-3.0.5-nexus\conf\settings.xml的名字一定要對應上。

  1. 上傳到Nexus上 專案編譯成的jar是Snapshot(POM檔案的頭部)
<groupId>com.woasis</groupId>
<artifactId>test-nexus</artifactId>
<version>1.0.0-SHAPSHOT</version>
<packaging>jar</packaging>

使用mvn deploy 即可,執行結果如圖所示:

在這裡插入圖片描述 因為Snapshot是快照版本,預設他每次會把Jar加一個時間戳,做為歷史備份版本。

Releases包的管理 與Snapshot大同小異,只是上傳到私服上的Jar包不會自動帶時間戳,如圖所示: 在這裡插入圖片描述 與Snapshot配置不同的地方,就是工程的PMO檔案,加入repository配置

<distributionManagement>
        <repository>
            <id>nexus</id>
            <name>Nexus Snapshot</name>
            <url>http://10.0.1.42:8081/repository/maven-releases/</url>
        </repository>

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

<groupId>com.woasis</groupId>
    <artifactId>test-nexus</artifactId>
    <version>1.0.0</version>
<packaging>jar</packaging>

第三方Jar上傳到Nexus

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的認證配的名字