CentOS安裝Nexus(Maven私有庫)詳細配置及上傳本地jar到私服


Nexus原理

Maven的原理就是將jar從遠程中央倉庫下載到PC磁盤的本地倉庫,當本地倉庫沒有發現需要的jar就會去Maven默認的遠程中央倉庫Maven Central(由Apache維護)中尋找,每次需要新的jar后都要從遠程中央倉庫上下載。那么問題來了?這個遠程的中央倉庫一定有很多人使用那下載速度一定很慢,這個暫且不用考慮。 重要的是萬一哪天公司外網連不上了咋辦?而Nexus私服恰好可以解決這個問題。搭建私服的好處是Nexus有效解決了Maven對Apache的遠程中央倉庫的依賴,當項目需要新的jar時會先在nexus私服下載好以后才會下載到本地。如果發現私服已經存在這個jar包,則會直接從私服下載到本地Maven庫,如果沒有再去網絡上下載。

原理如下圖所示:

 

無私服時直接請求Apache提供的Maven Central中心服務器下載jar

有私服時則從私服上下載jar,當安裝完Nexus后並開啟“遠程索引”(即:將遠程倉庫的jar下載到Nexus上的倉庫)

 

 —————————————————————————————————————————————————

Nexus安裝(CentOS版本的Linux)

注:Nexus依賴JDKnexus-2.11.*需要JDK1.7版本及以上

一。安裝JDK

步驟:

第一步:下載 jdk-7u55-linux-i586.tar.gz (如果有網可以使用wget http://Oracle官網的下載地址)

第二步:上傳壓縮包到linux系統。

第三步:解壓縮(將源文件壓縮包解壓至/usr/local下的jdk文件夾)。

[root@localhost zhoujianxu]# mkdir -p /usr/local/jdk

[root@localhost zhoujianxu]# tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/local/jdk

......
jdk1.7.0_55/man/man1/javadoc.1
jdk1.7.0_55/man/man1/jar.1
[root@localhost zhoujianxu]#

使用java -version 查看是否安裝成功!

[root@localhost zhoujianxu]# java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) Client VM (build 24.55-b03, mixed mode)
[root@localhost zhoujianxu]#

第四步:配置環境變量(vi編輯器使用:按i進入編輯模式,修改完成后按ESC鍵進入命令模式輸入:wq命令保存並退出:q!強制退出)。

[root@localhost zhoujianxu]# vi /etc/profile

修改/etc/profile,在文件中添加如下內容:

#set java environment
JAVA_HOME=/usr/local/jdk/jdk1.7.0_55
JRE_HOME=/usr/local/jdk/jdk1.7.0_55/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

 如下圖

第五步:source /etc/profile或者重啟。

[root@localhost zhoujianxu]# source /etc/profile

—————————————————————————————————————————————————

二。安裝Nexus步驟:

第一步:Nexus官網下載地址:http://www.sonatype.org/nexus/go/

使用wget命令下載 wget 想要下載nexus版本的地址

[root@localhost nexus]# wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2-03-bundle.tar.gz

[root@localhost nexus]# ls
nexus-2.11.2-03-bundle.tar.gz
[root@localhost nexus]#


第二步:解壓

[root@localhost nexus]# mkdir /usr/local/nexus

[root@localhost nexus]# tar -zxvf nexus-2.11.2-03-bundle.tar.gz  -C /usr/local/nexus/

[root@localhost nexus]# cd /usr/local/nexus

[root@localhost nexus]# ls
nexus-2.11.2-03 sonatype-work
(一個 nexus 服務,一個私有庫目錄)

第三步:編輯 Nexus 的 nexus.properties 文件,配置端口和 work 目錄信息(保留默認)
[root@localhost nexus]# cd nexus-2.11.2-03
[root@localhost nexus-2.11.2-03]# ls
bin conf lib LICENSE.txt logs nexus NOTICE.txt tmp
查看目錄結構,jetty 運行
[root@localhost nexus-2.11.2-03]# cd conf
[root@localhost conf]# vi nexus.properties

# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-webapp=${bundleBasedir}/nexus
nexus-webapp-context-path=/nexus
# Nexus section
nexus-work=${bundleBasedir}/../sonatype-work/nexus
runtime=${bundleBasedir}/nexus/WEB-INF

 如下圖


第四步:編輯 nexus 腳本, 配置 RUN_AS_USER 參數
[root@localhost conf]# vi /usr/nexus/nexus-2.11.2-03/bin/nexus

NEXUS_HOME=".."
改為(不修改默認也可以):
NEXUS_HOME="nexus安裝目錄"

#RUN_AS_USER=
改為:
RUN_AS_USER=root

第五步:防火牆中打開 8081 端口 [etc目錄通常放一些零散的配置文件]
[root@localhost conf]# vi /etc/sysconfig/iptables
添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT


保存后重啟防火牆(即使防火牆開着也可以訪問,作為服務器安全第一)
[root@localhost conf]# service iptables restart
第六步:啟動 nexus [nexus的bin目錄下的可以執行文件可以進入bin查看]
[root@localhost conf]# /usr/nexus/nexus-2.11.2-03/bin/nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
[root@localhost conf]#
—————————————————————————————————————————————————

瀏覽器輸入地址 http://192.168.174.128:8081/nexus

登錄,默認用戶名 admin 默認密碼 admin123

到此,Nexus 已安裝完成。

Nexus的訪問權限模型

Nexus是基於權限做訪問控制的,服務器的每一個資源都有對應的權限來控制,因此用戶執行特定的操作時就必須擁有必要的權限。管理員必須以角色的方式將權限賦予Nexus用戶。用戶可以被賦予一個或者多個角色,角色可以包含一個或多個權限,角色還可以包含一個或者多個其他角色。

Nexus上預定義了三個用戶,用admin登錄后,單擊頁面左邊的User鏈接,看到如下圖列表:

admin:該用戶擁有Nexus的全部權限,默認密碼為admin123。
deployment:該用戶能夠訪問Nexus,瀏覽倉庫內容、搜索、上傳部署構件,但是不能對Nexus進行任何配置,默認密碼為deployment123。
anonymous:該用戶對應了所有未登錄的匿名用戶,它們可以瀏覽倉庫並進行搜索。

添加新用戶並授予登錄訪問權限

添加第三方jar默認情況下Nexus為我們創建了以下主要的Repository
1、Public Repositories,這是一個Repository Group,該Repository  Group包含了多個Repository,其中包含了Releases、Snapshots、ThirdParty和Central。
2、3rd party,該Repository即是存放你公司所購買的第三方軟件庫的地方,它是一個由Nexus自己維護的一個Repository。
3、Apache Snapshots,看名字你就應該知道這是個什么樣的Repository,這是一個代理Repository,即最終的依賴還是得在Apache官網上去下載,然后緩存在Nexus中。
4、Central,這就是代理Maven Central Repository的Repository。
5、Releases,你自己的項目要發布時,就應該發布在這個Repository,他也是Nexus自己維護的Repository,而不是代理。
6、Snapshots,你自己項目Snapshot的Repository。

使用3rd party上傳第三方jar包

在Repository列表中,選中 3rd party,選中artifact upload,

選擇GAV Defini3ion: GAV Parameters,Auto Guess 打鈎。

在下方輸入JAR包對應的Group、Artifact、Version,Packaging選擇JAR格式。

點擊select Artifact(s) to upload 按鈕,選擇要上傳的JAR包

如下圖所示

 然后

OK上傳成功!

輸入pinyin4j點擊搜索

如下圖:

開啟Nexus的“遠程索引下載”

在搜索框中輸入“fileupload”點擊搜索

當沒開啟“遠程索引”時搜索結果如下圖:

開啟“遠程索引”

新搭建的neuxs環境只是一個空的倉庫,需要手動和遠程中心庫進行同步,nexus默認是關閉遠程索引下載,最重要的一件事情就是開啟遠程索引下載。登陸nexus系統,默認用戶名密碼為admin/admin123。
點擊左邊Administration菜單下面的Repositories,找到右邊倉庫列表中的三個倉庫Apache Snapshots,Codehaus Snapshots和Maven Central,然后再沒有倉庫的configuration下把Download Remote Indexes修改為true。如下圖:

Remote Storage Location后的http://repo1.maven.org/maven2/ 是Nexus將要下載到Nexus本地Central倉庫的遠程中心倉庫的地址。這個遠程中心倉庫資源比較全大概好幾百兆所以建立索引過程時間較長耐心等吧...,可以在Schedule Tasks中進行查看正在執行的任務(下面介紹)。

通過瀏覽器查看:

 

通過Browse Remote 查看地址為 http://repo1.maven.org/maven2/ 的遠程中心倉庫的資源

通過schedule Tasks 查看正在執行的任務(下面例子是為Nexus的Apache Snapshots(Repo)本地倉庫建立索引的任務該庫只包含Apache相關的資源和jar所以相對來說比較小)

Status為Running表示正在構建索引執行完后會自動消失。

再搜索時結果如下圖:

 

—————————————————————————————————————————————————

Nexus的安裝配置及使用到此全部完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM