1、概述html
一、概要java
如今的項目基本都是用Maven來管理工程,這樣一來在公司內容搭建一個私服就很是有必要了,這樣一來能夠管理公司內部用的JAR包,也能夠管理第三方的各類JAR來,以避免每次都要從外網的倉庫中下載。私服有兩種軟件搭建Nexus和artifactory,這兩個各有優勢。本文配置一下Nexus。Nexus仍是一個比較流行的私服。數據庫
二、Nexus介紹apache
Nexus是一個強大的Maven倉庫管理器,它極大地簡化了本身內部倉庫的維護和外部倉庫的訪問。利用Nexus你能夠只在一個地方就可以徹底控制訪問 和部署在你所維護倉庫中的每一個Artifact。Nexus是一套「開箱即用」的系統不須要數據庫,它使用文件系統加Lucene來組織數據。Nexus 使用ExtJS來開發界面,利用Restlet來提供完整的REST APIs,經過m2eclipse與Eclipse集成使用。Nexus支持WebDAV與LDAP安全身份認證。瀏覽器
Nexus的下載地址是:http://www.sonatype.org/nexus/go/到官網上將ZIP的壓縮包下載下來便可,解壓以後發現有兩個文件夾,一個是nexus-2.11.0-02,另外一個是sonatype-work;第一個文件夾包含了Nexus運行所須要的文件,是運行Nexus必須的;第二個文件夾目錄包含Nexus生成的配置文件、日誌文件、倉庫文件等,當須要備份Nexus的時候,默認備份的是此目錄文件。安全
2、環境準備oracle
一、apache-maven-3.2.5 百度網盤下載地址:https://pan.baidu.com/s/1Rhglh4_RPgT79pXObQ2vZQ 提取碼:a6h6 app
關於maven請參考個人另外一篇文章:https://www.cnblogs.com/liandy001/p/11287278.htmleclipse
二、nexus-2.11.4-01-bundle 百度網盤下載地址:https://pan.baidu.com/s/1ZCyVb-Zc5RytvG9tFv5F2Q 提取碼:h3d0maven
三、JDK1.8 64位 百度網盤下載地址:https://pan.baidu.com/s/1lI6BLbWK7DslmIjI_z81Pg 提取碼:knuz
3、Nexus環境配置
一、修改系統變量
在系統變量Path 添加值(D:\DevelopTools\nexus-2.11.4-01-bundle\nexus-2.11.4-01\bin;(按實際安裝目錄爲準))
二、配置Nexus對應的JDK
在 nexus的根目錄bin\jsw\conf\wrapper.conf的文件
修改:wrapper.java.command=C:\Program Files\Java\jdk1.8.0_131\bin\java
三、安裝Nexus服務
dos窗口輸入指令nexus install
四、啓動Nexus服務
dos窗口輸入指令nexus start
若是啓動失敗,主要有兩種緣由:
一、Nexus安裝目錄 bin\jsw\conf\wrapper.conf中的java配置錯誤致使啓動失敗(錯誤可能性1:版本錯誤;錯誤可能性2:寫錯路徑了).
二、8081端口被佔用致使啓動失敗(若是是非系統進程佔用,結束該進程便可),或修改Jetty的端口,在Nexus的安裝目前/conf/nexus.properties文件中找到 application-port=8081 改成8181就好了。
4、Nexus初步介紹
1.打開瀏覽器,訪問:http://localhost:8081/nexus/:
2.點擊右上角 Log In,使用用戶名:admin ,密碼:admin123 登陸,可以使用更多功能:
3.點擊左側 Repositories 連接,查看 Nexus 內置的倉庫:
4.Nexus 的倉庫分爲這麼幾類:
5.爲了更好的使用 Nexus 的搜索,咱們能夠設置全部 proxy 倉庫的 Download Remote Indexes 爲 true,即容許下載遠程倉庫索引。
索引下載成功以後,在 Browse Index 選項卡下,能夠瀏覽到全部已被索引的構件信息,包括座標、格式、Maven 依賴的 xml 代碼:
6.管理本地倉庫
咱們前面講到類型爲hosted的爲本地倉庫,Nexus預約義了3個本地倉庫,分別是Releases, Snapshots, 3rd Party. 分別講一下這三個預置的倉庫都是作什麼用的:
Releases:
這裏存放咱們本身項目中發佈的構建, 一般是Release版本的, 好比咱們本身作了一個FTP Server的項目, 生成的構件爲ftpserver.war, 咱們就能夠把這個構建發佈到Nexus的Releases本地倉庫. 關於符合發佈後面會有介紹.
Snapshots:
這個倉庫很是的有用, 它的目的是讓咱們能夠發佈那些非release版本, 非穩定版本, 好比咱們在trunk下開發一個項目,在正式release以前你可能須要臨時發佈一個版本給你的同伴使用, 由於你的同伴正在依賴你的模塊開發, 那麼這個時候咱們就能夠發佈Snapshot版本到這個倉庫, 你的同伴就能夠經過簡單的命令來獲取和使用這個臨時版本.
3rd Party:
顧名思義, 第三方庫, 你可能會問不是有中央倉庫來管理第三方庫嘛,沒錯, 這裏的是指可讓你添加本身的第三方庫, 好比有些構件在中央倉庫是不存在的. 好比你在中央倉庫找不到Oracle 的JDBC驅動, 這個時候咱們就須要本身添加到3rdparty倉庫。
5、經過Maven發佈到Nexus中央倉庫
1 . 修改私服中倉庫的部署策略
Release版本的項目應該發佈到Releases倉庫中,對應的,Snapshot版本應該發佈到Snapshots倉庫中。Maven根據pom.xml文件中版本號<version>節點的屬性是否包含-SNAPSHOT,來判斷該項目是不是snapshot版本。若是是snapshot版本,在執行mvn deploy部署命令時,maven會自動將項目發佈到Snapshots倉庫。要發佈項目,首先須要將Releases倉庫和Snapshots倉庫的「Deployment Policy」設置爲「Allow Redeploy」:
2 . 配置項目的部署倉庫
在項目的pom.xml文件中增長配置:
<distributionManagement> <repository> <id>releases</id> <url>http://127.0.0.1:8081/nexus/content/repositories/releases</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement>
3.設置Maven的服務帳號和密碼
D:\maven\apache-maven-3.2.5\conf\settings.xml
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
4.發佈項目到Nexus中央倉庫
右鍵項目->run as->maven build……->run
發佈成功後,在私服的倉庫中就能看到了:
6、在Nexus中手動上傳項目構件
7、Nexus私服庫快速導入jar包
一、找到Repositories->Central->Configuration;以下圖
備註:圖中第三步 是Nexus 默認的工做路徑,須要把你本地的 maven 倉庫地中的 全部jar包經過 XFTP上傳到裏面,再Save;
Nexus私服庫快速導入jar包結束;