跟大家講解下有關使用nexus搭建局域網私服,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說使用nexus搭建局域網私服,小編也收集到了有關使用nexus搭建局域網私服的相關資料,希望大家看到了會喜歡。
使用nexus搭建局域網私服一. 認識maven倉庫1.1 maven倉庫的作用??回想之前不用maven的時候,我們用eclipse原始的項目骨架構建項目時,在工程目錄下往往有一個lib文件夾用來存放工程所需jar文件,每次建一個新工程時都會有這樣一個lib文件夾。然后將jar復制進lib文件夾配置路徑,很顯然有大量的重復工作,而且不同項目所用jar包不盡相同,需要我們慢慢去分辨。而后我們用了項目管理工具比如svn或者git,我們需要把把大量的jar文件引入代碼庫,這也不是一件很合適的事。??而maven能夠幫我們解決這些問題,maven倉庫是專門用來存放jar文件的位置(也可以用來存放項目war,zip,pom等文件)。maven倉庫中為每個jar文件分配了一個坐標,比如jstl的jar包:
<groupId>javax.servlet</groupId> 組ID<artifactId>jstl</artifactId> 構建ID... 其余屬性后續介紹這樣做的話,maven能很方便的進行項目依賴版本的控制。簡單說maven倉庫就是幫我們統一管理項目構件。
1.2 maven倉庫分類??項目構建的查詢路徑:首先查詢本地倉庫,未找到就會查詢中央倉庫,沒找到就會報錯。中央倉庫地址有:
私服nexus用
推薦使用
上面三個是較為常見的,也是項目中使用較多的,但是由于下載速度太慢,并且倉庫的jar文件不完整,實際企業開發需要我們搭建私服倉庫。
二. 安裝使用nexus??這里注意搭建maven私服不僅僅只有這一種工具。博主用的版本是nexus-2.12.0。
點擊下載,密碼: 1ar1
下載完成后解壓即可,解壓完成到目錄nexus-2.12.0-01-bundle\nexus-2.12.0-01\bin\jsw下可以看到:
博主電腦是64位所以打開最后一個文件夾:
點擊第二個bat文件設置為windows服務,開啟nexus后訪問網址: http://localhost:8081/nexus/啟動后打開如下頁面,即代表nexus安裝并啟動成功。
點擊右上角Login登陸,初始賬號為admin,密碼是admin123 登陸成功可修改賬號密碼,自己找。
點擊左邊的導航Respositories。
可以看到默認有一些倉庫,倉庫類型Type的意義:
hosted 宿主倉庫,用來發布一些第三方不允許的組件,比如oracle驅動等商業軟件的jar包
proxy 代理遠程的倉庫,比如上面寫得三個maven遠程倉庫。如果本地不存在某些jar文件時就會到這些代理站點去下載。
releases 內部的模塊中release模塊的發布倉庫
snapshots 發布內部的snapshot模塊的倉庫
3rd party 第三方依賴的倉庫,本地上傳jar包后使用
group 組倉庫,用來添加其他的倉庫,方便開發人員設置
開始搭建私服倉庫,值得注意的是:maven項目索引:maven項目索引就是用來方便在私服站點查找相關依賴構建的功能。所以在搭建私服之前,應該下載maven索引,大概幾十M:
將Download Remote Indexs屬性改成True,然后點擊save即可,可以在菜單欄Scheduled Tasks查看下載索引的進度。3.添加自己代理的遠程庫,有時候我們的項目需要引入一些特殊的jar文件,比如Jboss的某些jar包,這時候也可以在私服中代理該遠程倉庫:
點擊add后添加代理類型,依次填寫id,name和url,這樣的話,在項目中不再需要配置遠程倉庫:
<repository> <id>jboss</id> <name>JBoss Repository</name> <url>;/url> <releases> <updatePolicy>daily</updatePolicy><!-- never,always,interval n --> <enabled>true</enabled> <checksumPolicy>warn</checksumPolicy><!-- fail,ignore --> </releases> <snapshots> <enabled>false</enabled> </snapshots> <layout>default</layout></repository>4.宿主倉庫的使用,上面提到的一些特殊的商業性質相關的jar文件,比如oracle的驅動包,ojdbc.jar并不支持遠程下載,這時候可以將我們本地下載好的jar包上傳到私服。
注意GAV設置要與你pom.xml中一致,上傳后添加到Artifacts點擊上傳即可:5.由于私服倉庫數量過多,導致配置復雜度提高,所以需要用到上述的group類型倉庫:
切記點擊刷新,刷新后點擊唯一的一個group倉庫,點擊配置Configuration就可以看到剛才我們手動添加的代理倉庫,然后將代理倉庫添加到組倉庫,這樣依賴,項目中之需要配置組倉庫的url就可以訪問多個私服倉庫。
四. 局域網使用maven私服4.1 單個項目使用maven私服在上述步驟完成后,即可在項目中引用私服,pom.xml中改變默認下載倉庫url:指定私服倉庫,我的ip是170,不要全盤復制
<repositories> <repository> <id>nexus</id> <name>nexus</name> <url>http://192.168.1.170:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>指定插件倉庫
<pluginRepositories> <pluginRepository> <id>nexus</id> <name>nexus</name> <url>http://192.168.1.170:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>配置好之后就可以從私服下載依賴包了。但是這種方式只能在改項目中起作用,每次配置項目都需要寫兩遍,為了將懶人模式進行到底,我們還可以指定全局的私有倉庫。
4.2 全局指定私服找到maven文件的中的setting.xml文件
在setting.xml中添加配置:在<profiles>標簽下添加
<profile> <repositories> <id>central</id> <name>central</name> <url>http://192.168.1.170:8081/nexus/content/groups/public/</url> <layout>default</layout> <releases> <enabled>true<enabled> </releases> <snapshots> <enabled>true<enabled> </snapshots> </repositories></profile>配置好之后激活profile
<activeProfiles> <activeProfile>central</activeProfile> </activeProfiles>這樣一來,這臺電腦上所有maven項目下載jar文件時都會先訪問局域網170的電腦。
-----------------------------------windows配置私服完畢-----------------------------------
擴展:setting,xml中各標簽的意義:
servers(服務器)
<servers> <server> <id>server001</id> <username>my_login</username> <password>my_password</password> <privateKey>${usr.home}/.ssh/id_dsa</privateKey> <passphrase>some_passphrase</passphrase> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> <configuration></configuration> </server></servers>id與pom.xml中distributionManagement的id保持一致,服務器標識username和password表示服務器認證需要的用戶民和密碼privateKey, passphrase一組密鑰 (不常用)filePermissions, directoryPermissions如果在部署的時候會創建一個倉庫文件或者目錄,這時候就可以使用權限(不常用)
2.mirrors(鏡像)
<mirrors> <mirror> <id>planetmirror.com</id> <name>PlanetMirror Australia</name> <url>;/url> <mirrorOf>central</mirrorOf> </mirror></mirrors>設置一個中央倉庫的鏡像,看倉庫分類,也是遠程倉庫的一種配置方式。
3.profiles(構建環境)這個可能比較難理解,maven權威指南一書中這樣說:
??Profile能讓你為一個特殊的環境自定義一個特殊的構建;??構建環境的兩個例子是產品環境和開發環境。當你在開發環境中工作時,你的系統可能被配置成訪問運行在你本機的開發數據庫實例,而在產品環境中,你的系統被配置成從產品數據庫讀取數據。Maven能讓你定義任意數量的構建環境(構建profile),這些定義可以覆蓋pom.xml中的任何配置。
簡單理解就是你可以先profile中先構件好項目運行的環境,比如預設了A環境實在開發中使用,而實際上線是B環境,那么在上線的時候我們不需要一個個修改pom.xml中的配置,只需要激活改profile即可。
4.activation(激活構建環境 )
<activation> <activeByDefault>false</activeByDefault> <jdk>1.5</jdk> <os> <name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> <property> <name>mavenVersion</name> <value>2.0.3</value> </property></activation>指定profile中配置的環境在什么時候開始生效
5.activeProfiles(激活了的profile)
<activeProfiles><activeProfile>env-test</activeProfile></activeProfiles>在setting.xml最后的一個標簽,表示env-test這個profile已被激活
以上就是使用nexus搭建局域網私服的詳細內容,更多請關注php中文網其它相關文章!
來源:php中文網