系統:LINUXcentos
JDK:已安裝oracle
Maven:已安裝(未安裝詳見maven安裝教程)maven
Nexus:ide
全部版本下載地址:https://www.sonatype.com/download-oss-sonatype this
Nexus是一個強大的Maven倉庫管理器,它極大地簡化了本身內部倉庫的維護和外部倉庫的訪問。url
Nexus經常使用功能就是:指定私服的中央地址、將本身的Maven項目指定到私服地址、從私服下載中央庫的項目索引、從私服倉庫下載依賴組件、將第三方項目jar上傳到私服供其餘項目組使用。idea
[root@centos6 var]# tar -zvxf nexus-2.12.0-01-bundle.tar.gz
注:解壓後有兩個文件夾:spa
[root@centos6 nexus-2.12.0-01]# ./bin/nexus start - **************************************** WARNING - NOT RECOMMENDED TO RUN AS ROOT **************************************** If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
默認狀況下,不建議以root用戶運行Nexus,能夠修改bin/nexus中的配置跳過警告(修改RUN_AS_USER=root).net
[root@centos6 nexus-2.12.0-01]# vi bin/nexus
從新啓動Nexus插件
[root@centos6 nexus-2.12.0-01]# ./bin/nexus start - **************************************** WARNING - NOT RECOMMENDED TO RUN AS ROOT **************************************** Starting Nexus OSS... Started Nexus OSS.
注:Nexus默認端口8081,若是想修改端口。修改/conf/nexus.properties文件
訪問網址:http://192.168.1.11:8081/nexus/
點擊右上角的 Log In 按鈕便可登錄了。默認登陸帳號/密碼爲: admin/admin123 ,登錄成功後的界面
通常用到的倉庫種類是hosted、proxy。Hosted表明宿主倉庫,用來發布一些第三方不容許的組件,好比Oracle驅動、好比商業軟件jar包。Proxy表明代理遠程的倉庫,最典型的就是Maven官方中央倉庫、JBoss倉庫等等。若是構建的Maven項目本地倉庫沒有依賴包,那麼就會去這個代理站點去下載,那麼若是代理站點也沒有此依賴包,就回去遠程中央倉庫下載依賴,這些中央倉庫就是proxy。代理站點下載成功後再下載至本機。
hosted 類型的倉庫,內部項目的發佈倉庫
releases 內部的模塊中release模塊的發佈倉庫
snapshots 發佈內部的SNAPSHOT模塊的倉庫
3rd party 第三方依賴的倉庫,這個數據一般是由內部人員自行下載以後發佈上去
proxy 類型的倉庫,從遠程中央倉庫中尋找數據的倉庫
group 類型的倉庫,組倉庫用來方便咱們開發人員進行設置的倉庫
點擊Repositories,將列表中全部Type爲proxy 的項目的 Configuration 中的 Download Remote Indexes 設置爲True,下載Maven項目索引,項目索引是爲了使用者可以在私服站點查找依賴使用的功能。
將Releases倉庫的Deployment Policy設置爲 Allow ReDeploy:
固然咱們也避免不了會使用到一些第三方的 jar ,而這些jar包也不存在於互聯網上的maven中央倉庫中,這時咱們能夠手工添加jar 到咱們的私服中。
填寫完必選字段,點擊Upload Artifact(s)按鈕便可。
自動發佈構件到遠程倉庫,在工程pom.xml中添加:
<distributionManagement> <repository> <id>releases</id><!--這個ID須要與你的release倉庫的Repository ID一致--> <url>http://192.168.1.11:8081/nexus/content/repositories/releases</url> </repository> <snapshotRepository> <id>snapshots</id><!--這個ID須要與你的snapshots倉庫的Repository ID一致--> <url>http://192.168.1.11:8081/nexus/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement>
修改本地$MAVEN_HOME\conf目錄下的settings.xml配置文件,添加以下配置:
<servers> <server> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server> </servers>
在本地工程目錄下執行:
D:\ideaWork\Catering>mvn deploy
所部署的包就自動上傳到了nexus安裝目錄下的。
配置Maven從Nexus下載構件:
在pom.xml中配置Nexus私服,這樣的配置只對當前的Maven項目有效:
<!--指定Nexus的構件倉庫--> <repositories> <repository> <id>public</id> <name>Team Maven Repository</name> <url>http://192.168.1.11:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <!--指定Nexus的插件倉庫--> <pluginRepositories> <pluginRepository> <id>public</id> <name>Team Maven Repository</name> <url>http://192.168.1.11:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
若是想要所有Maven項目都適用的話,須要在本身本地Maven的conf/settings.xml中配置profile元素(配置在profiles節點中):
<profile> <id>public</id> <repositorys> <repository> <id>test1</id> <url>http://192.168.1.11:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositorys> </profile>
在追加激活profile:
<activeProfiles> <activeProfile>public</activeProfile> </activeProfiles>
而後再配置鏡像,在mirrors節點下配置nexus信息:
<mirror> <id>central</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://192.168.1.11:8081/nexus/content/groups/public/</url> </mirror>