Maven3.0.5代理nexus

Nexus簡介

? ? ? ? ? ?Nexus是Sonatype推出的強大Maven倉庫管理器產品,要比以前TSS上介紹的Artifactory要好使用的多,也是一個拆箱即用的Java App,內嵌Jetty容器和Java Wrapper做Windows服務,安裝簡單到解壓然后雙擊install即可。更詳細的幫助手冊請上官方網站查看,這里推薦一個翻譯中的書籍——《Maven權威指南》(在線閱讀英文版,中文版),一本全面介紹Maven的書,其中也有介紹Nexus的章節,猛擊這。Nexus的優點這里得啰嗦一下(摘抄自Maven中文Blog):

代理遠程倉庫。配置Nexus代理中央倉庫,其它任何公開的Maven倉庫,將你組織內部的Maven配置指向Nexus,這樣所有構件都將從Nexus下載,如果Nexus沒有你要的構件,它會自動先去外部倉庫下載到本地,僅一次。

本地宿主倉庫。Nexus可以在服務器上建立本地的宿主倉庫,你可以往這個倉庫里提交任意的Maven規范構件,包括不能從公開倉庫下載到的構件,或者你組織內部產生的構件。

倉庫組。有了倉庫組,你就能將很多倉庫聚合起來,對外公開一個統一的接口提供構件服務。

構件搜索。Nexus能下載遠程的倉庫索引,并在本地構件自己的倉庫索引,有了該索引,你就能很快速方便的搜索任何你感興趣的構件。

事情RSS源。Nexus服務器上發生的幾乎任何事情,你都能用RSS監視,方便管理。

Release和Snapshots區分。配置Nexus提供Release構件服務或者Snapshots服務,能更清晰的管理構件。

路由。Nexus的路由能夠管理為特定的請求提供特定的倉庫。加入你在一個組中配置了很多倉庫,一條路由能夠極大提高某些特定請求的響應速度。

上傳構件。使用Nexus你能很方便的在web界面上上傳一些特殊的構件至倉庫。

高用戶體驗的UI。使用AJAX和REST技術開發的Nexus,在界面上為提供了很舒適的用戶體驗。

?? ?初始化

1 下載nexus安裝包? 網址:http://www.sonatype.org/nexus/

?? 建議下載最新的版本,最新的版本支持比較新的jdk版本

2 啟動nexus服務

??? 進入nexus的文件目錄:D:\nexus-oss-webapp-1.9.2.4-bundle\nexus-oss-webapp-1.9.2.4\bin\jsw\windows-x86-32下面,

? ??Installnexus.bat 表示安裝nexus服務到window服務中去。

?????Startnexus.bat? 表示啟動nexus服務。

?????nexus.bat? 表示啟動nexus應用程序 。

??? Resumenexus.bat? 表示重啟nexus 。

?????Stopnexus.bat? 表示停止nexus服務

?? 啟動nexus 無需啟動tomcat,只需要點擊“nexus.bat "就可以啟動。

?? 啟動成功后 在瀏覽器地址欄中輸入:

?? http://localhost:8081/nexus/index.html

?? 如果看到nexus界面 說明啟動成功。

默認安裝后的訪問路徑為http://localhost:8081/nexus/, 管理員登錄為admin/admin123,UI是用Ext搭建的,熟悉Ext的人根本沒有操作障礙,登錄后最重要的事情就是打開遠程索引下載,操作為進入Repository菜單,修改 Apache Snapshots,Codehaus Snapshots,Maven Central的Download Remote indexs 為true.? 并右擊每一個倉庫的 repair Index ,進行更新index? 并把所有的proxy類型的倉庫添加到public repository中去。,這一步別忘,我當時搭建的時候就忘了Re-Index,結果等了一天還 沒任何索引文件。

自己覺得比較好的其他的代理倉庫如下:

? 添加新的repository 即代理倉庫

? http://repository.jboss.org/nexus/content/groups/public/

? https://repository.jboss.org/nexus/content/groups/developer/

? http://morphia.googlecode.com/svn/mavenrepo/

Re-Index后,Nexus會從后臺去官方地址下載倉庫索引文件,大概20M大小,根據網速快慢下載相應時間后選擇倉庫時會以樹形目錄的方式顯示倉庫內容。

?

角色權限

Nexus的操作權限完全仿照RBAC角色權限模型,默認三個用戶:admin、anonymous、deployment,對應的是管理用戶、匿 名訪問用戶和部署用戶,管理用戶用于倉庫管理和系統配置,匿名用戶用于倉庫查詢和倉庫下載,部署用戶用于私人jar包的上傳。在這里,我對 deployment的默認角色Nexus Deployment Role做了自定義修改,加入了"All M2 Repositories"的create和update權限,并且加入了"UI:Base UI Privaties"權限,用意稍后解釋。

Nexus的使用

從瀏覽器里打開訪問地址后,通過"Artifact Search"菜單可以進行構件搜索。

對于一些特殊的構件,比如sqlserver2005的jdbc驅動,你可以通過管理員登錄然后從第三方上傳構件

提供倉庫組的概念,對于遠程代理倉庫和本地宿主倉庫,還有第三方倉庫,全部創建為一個public-group,然后通過訪問組就可以訪問所有的倉庫構件了,這就是所謂的分散存儲,統一訪問

和Maven結合也很簡單,首先是要配置Maven,打開$user$/.m2/下的settings.xml(沒有的話創建一個),然后拷貝以下內容到文件中:settings.xml?

<settings><mirrors><mirror><!--This sends everything else to /public --><id>nexus</id><mirrorOf>*</mirrorOf><url>http://服務器IP地址:8081/nexus/content/groups/public</url></mirror></mirrors><profiles><profile><id>nexus</id><!--Enable snapshots for the built in central repo to direct --><!--all requests to nexus via the mirror --><repositories><repository><id>central</id><url>http://central</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>central</id><url>http://central</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile></profiles><activeProfiles><!--make the profile active all the time --><activeProfile>nexus</activeProfile></activeProfiles>
</settings>

?

然后,在從你的工程里的pom.xml中加入以下內容:

?

<repositories><repository><id>nexus</id><name>nexus</name><url>http://192.168.1.59:8080/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.59:8080/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories>

解釋一下:
settings.xml中的proxies/proxy節點配置的是部署服務器訪問屬性,deployment/deploy對應的是部署用戶名和密 碼;mirrors/mirror配置的是maven訪問倉庫的地址,這里使用的是Nexus提供的群組概念,將多個倉庫組成一個public- group的方式進行訪問;profiles/profile則主要用來描述倉庫部署的訪問配置。

上傳jar到本地倉庫,如第三方的jar包 gearman 相關的jar包

選中3rd party 點擊Artifact Upload標簽? ?

??

?

點擊 select artifact(s) 按鈕 選擇要上傳到jar包 然后再add artiffact 如圖所示

?

點擊 uplaod artiffacts 上傳jar包

配置中央倉庫

?????在左邊菜單欄里選擇Repositories, 會看到如下的界面:

?

?

其中右邊欄上半部分列出當前nexus管理的repository,黑體字是類型為group的repository. 這里簡單介紹下幾種repository的類型:

hosted,本地倉庫。通常我們會部署自己的構件到這一類型的倉庫。比如公司/組織開發的項目

proxy,代理倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫或一些第三方公共倉庫。

group,倉庫組,用來合并多個hosted/proxy倉庫,當你的項目希望在多個repository使用依賴項時,無需引用多個倉庫了,只需要引用一個類型為group的repository即可。

Maven central是Maven的中央倉庫,點擊它并選擇configuration標簽欄,我們會看到下面的頁面:

這里有幾個配置項是經常用到的:

Override local storage location:??該選項允許配置?Nexus本地倉庫的存放地址,用來覆蓋其默認的存放地址

Remote storage location: 該選項允許配置遠程倉庫的地址。一般為了提高代理速度,你可以將其修改為國內的鏡像地址。默認值是http://repo1.maven.org/maven2/

Download remote indexes: 該選項配置是否下載遠程索引文件。 建議配置為true,這樣我們便可以通過nexus的搜索功能來搜索我們需要的依賴項。

?

?添加代理倉庫(proxy)

?? ? nexus默認提供了Maven central這個代理倉庫,如果你需要添加其他代理倉庫,那么可以點擊左邊欄頁面上的Repositories鏈接,然后在右邊欄頁面上依次點擊add -> add proxy repository, 隨后出現以下頁面:

根據提示填寫相關信息保存即可。?

管理本地倉庫(hosted)

?Nexus預定義了三種本地倉庫,分別是Releases, Snapshots, 3rd Party. 下面分別介紹一下這三種類型倉庫的作用

Releases: ?存放穩定版本的構件。比如我們完成了一個版本的下數組件的開發,就可以把它發布到這里。

Snapshots: 存放快照版本的構件。 比如一個下數組件在完成所有開發和測試工作之前,是不應該發布到release倉庫的,但可能其他項目只需用到這個組件的某些接口,只要這些接口完成了開發并通過測試,就可以拿來使用, 從而實現多個項目并行開發。

3rd Party: ?存放其他第三方構件。你可能會問, 不是有中央倉庫和其他第三方公共倉庫來管理這些依賴項了嗎?沒錯。但由于某些開源項目出現的時間比maven要早,因此他們大都沒有采用maven方式進行構建。?其他還包括包括一些非開源或使用maven 1.x構建的組件.?我們可以把這類組件通通添加到這里。

創建本地倉庫的方法很簡單。點擊Repository面板上方的Add按鈕,然后選擇Hosted Repository,然后在下方的配置面板中輸入相關信息。 注意根據自己的需要選擇本地倉庫的類型

?倉庫組(group)

? ? ??通過前面介紹我們了解到, 可以建立多個代理倉庫和本地倉庫. 但如果沒有倉庫組的概念,那么當需要引用這些倉庫時, 就需要將他們逐個添加到pom.xml或setting.xml.?倉庫組是為了簡化倉庫的引用而提出的。有了倉庫組的概念, 我們可以把倉庫根據不同目的進行分組,比如把常用的歸到一組或根據訪問權限分組, 然后直接聲明引用某個倉庫組即可. 下面是pom.xml中聲明引用一個nexus倉庫組的例子:?

???????

  <repositories><repository><id>nexus-public</id><url>http://127.0.0.1:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>

?

?可以看到聲明引用一個倉庫組和一個普通的遠程倉庫,配置的寫法完全一樣。

maven本身沒有倉庫組的概念

?Nexus中預設了2個倉庫組, 分別是public repositories和public snapshot repositories. 如圖:

?

?

public repository默認包含本地倉庫的Releases, snapshots和3rd party以及代理倉庫的Maven Central. 你可以在Configuration配置頁添加其他倉庫到這個倉庫組。 如果需要,你還可以創建一個倉庫組,方法是點擊 Add->Repository Group, 當New Repository Group界面后,填入ID, name 等相關信息, 然后在右邊Available Repositories 欄里可以選擇你要添加的倉庫到你新建的倉庫組.?

??

通過?Nexus?搜索構件

? ? ? 在開發過程中過程中,我們往往只記得某個構件的大致名字,這時我們可以通過nexus提供的構件搜索功能查詢該構件的完整配置信息(groupId,artifactId,version).如果通過nexus搜不到某個的構件,那說明這個構件不在當前nexus所登記的倉庫中,可能需要添加額外的代理倉庫或手工上傳某個構件。

? ? ?在使用nexus的搜索功能之前,必須先讓nexus所登記的倉庫建立索引文件, Nexus默認是不為每個倉庫建立索引文件的,因為建立像中央倉庫這樣的索引文件需要耗費比較大的網絡帶寬和事件,僅索引文件就要幾十兆. 要開啟中央倉庫的索引文件下載功能需要在Maven Central的配置頁中, 把Download Remote Indexes改為true. 如圖:

?

? 這樣設置之后, Nexus會自動從遠程中央倉庫下載索引文件, 為了檢驗索引文件自動下載是否生效,可以切換到Browse標簽頁,如圖:

如果出現類似于以上文件夾,那說明索引文件已經建立成功.

????下面我們試一下搜索功能, ?搜索欄輸入testing, 查詢結果如下:

?

這是模糊查詢的結果,當然如果你知道更多信息,比如版本號等,你可以使用高級搜索,點擊高級搜索后,右邊界面會提供集中搜索方式:keyword, classname, GAV, checksum

?

?比如我們這里選擇GAV模式. 假設我只知道artifact的名字(如testng)和版本號(如5.8), 其他的我不知道, 那么就在artifact 和 version處分別輸入testng 和 5.8 , 搜索結果如下:

?

如果你不知道知道構件的名稱, 只知道classname, 那么你也可以通過class name 的方式搜索,這里就不再贅述。

當你選中某項搜索結果, 頁面的下方會出現這個構件的詳細信息, 并且會列出這個構件的Maven依賴配置, 你可以直接拷貝到你的pom文件中使用,這是個非常實用的功能:

?

?

在?Maven?中使用Nexus

到此我們介紹了如何安裝和使用Nexus以及其基本配置, 那么如何在Maven來使用Nexus本地倉庫呢?其實和配置遠程倉庫的方法一樣。下面是在settings.xml中添加了一個nexus本地倉庫的例子:?

????????

<profiles>...<profile><id>dev</id><repositories><repository><id>nexus</id>               <url>http://127.0.0.1:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>          <pluginRepositories><pluginRepository><id>nexus</id><url>http://127.0.0.1:8081/nexus/content/groups/public</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile>...</profiles><activeProfiles><activeProfile>dev</activeProfile></activeProfiles>

?

你也可以在pom.xml中聲明引用某個nexus倉庫。

資料:
http://my.oschina.net/shootercn/blog/12269

http://my.oschina.net/zb0423/blog/60010

http://my.oschina.net/aiguozhe/blog/101537

轉載于:https://www.cnblogs.com/ataosoft/archive/2013/04/25/3042235.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378531.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378531.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

8253譯碼電路設計以及初始化編程講解

先驗知識回顧&#xff1a;知識點不清晰的時候可以查詢相關知識點。 https://blog.csdn.net/qq_42604176/article/details/105810973 需掌握的主要知識點 1、譯碼電路設計 2、初始化編程 例題1 在以 8086構成的最大方式系統中&#xff0c;有一片8254的端口地址分別為301H、3…

java安卓寫文件路徑,如何使用gradle作為構建系統,平臺Android配置Protobuf(Java)文件的輸出路徑?...

我正在努力解決以下問題&#xff1a;我有2個基于maven的java項目和1個基于gradle的Android項目 . 布局如下&#xff1a;Workspace/├── MavenProj1/├── MavenProj2/├── AndroidGradleProject1/├── Protos/所有這些的包結構很常見&#xff0c;比方說 com.example.* 所…

Java System類exit()方法及示例

系統類exit()方法 (System class exit() method) exit() method is available in java.lang package. exit()方法在java.lang包中可用。 exit() method is used to exit the currently running JVM (Java Virtual Machine). exit()方法用于退出當前正在運行的JVM(Java虛擬機)。…

基于圖像處理的數碼印花噴墨墨滴形狀規范的研究(Python+OpenCV+Mysql)

大體思路&#xff1a;由于墨滴的不同參數會對墨滴的形態產生一定的影響&#xff0c;故如果通過研究墨滴的形態則通過海量的數據就可以大概確定墨滴的各項參數指標的范圍。通過OpenCV對墨滴的噴出的形狀進行圖像處理&#xff0c;對墨滴圖像進行一系列的分析&#xff0c;通過一系…

ASP.NET 主題(Themes)FAQ

1、主題是什么 主題由一組元素組成&#xff1a;外觀、級聯樣式表 (CSS)、圖像和其他資源。主題將至少包含外觀。主題是在網站或 Web 服務器上的特殊目錄中定義的。主題是一組Web Control的屬性設置的集合&#xff0c;提供一種簡單的方法設置控件的樣式屬性。 主題只在Web Contr…

Head First HTML與CSS、XHTML++筆記(第四章 WEB鎮之旅 第五章 認識媒體)

第四章 鏈接&#xff08;詳解<a>元素&#xff09; 目標錨 在目標位置 <h2><a id"chai">contentTest</a></h2> 在需要鏈接位置 <a href"index.html#chai">See</a> 鏈接到自身的目標錨 <a href"#top"…

Opencv實戰【4】——圖片動漫化處理

博主聯系方式&#xff1a; QQ:1540984562 微信&#xff1a;wxid_nz49532kbh9u22 QQ交流群&#xff1a;750313950 目錄動漫化風格的特點處理手段代碼實現效果總結動漫化風格的特點 &#xff08;1&#xff09;動漫中的細節相對少&#xff1b; &#xff08;2&#xff09;動漫中的邊…

nextshort_Java掃描儀的nextShort()方法與示例

nextshort掃描器類的nextShort()方法 (Scanner Class nextShort() method) Syntax: 句法&#xff1a; public short nextShort();public short nextShort(int rad);nextShort() method is available in java.util package. nextShort()方法在java.util包中可用。 nextShort() …

php 生成css文件怎么打開,php生成html文件的多種步驟介紹

//定義日期函數functiongetdatetime(){$datetimegetdate();$strReturn$datetime["year"]."-";$strReturn$strReturn.$datetime["mon"]."-";$strReturn$strReturn.$datetime["mday"];return$strReturn;}//定義時間函數(文件名…

08-KNN手寫數字識別

標簽下載地址 文件內容備注train-images-idx3-ubyte.gz訓練集圖片&#xff1a;55000張訓練圖片&#xff0c;5000張驗證圖片train-labels-idx1-ubyte.gz訓練集圖片對應的數字標簽t10k-images-idx3-ubyte.gz測試集圖片&#xff1a;10000張圖片t表示test&#xff0c;測試圖片&…

MFC odbc訪問遠程數據庫

首先&#xff0c;MFC通過ODBC訪問數據庫&#xff0c;主要使用兩個類&#xff0c;一個是CDataBase&#xff0c;一個是CRecordset。第一個是用于建立數據庫連接的&#xff0c;第二個是數據集&#xff0c;用來查詢的。步驟如下&#xff1a;1.實例化一個CDataBase對象&#xff0c;并…

微機原理——擴展存儲器設計

目錄【1】存儲器的層次結構【2】存儲器的分類【3】SRAM1、基本原理&#xff1a;2、結構&#xff1a;3、芯片參數與引腳解讀&#xff1a;4、CPU與SRAM的連接方式【4】DRAM1、基本原理&#xff1a;2、結構3、芯片引腳解讀&#xff1a;【5】存儲器系統設計【6】存儲器擴展設計&…

floatvalue 重寫_Java Number floatValue()方法與示例

floatvalue 重寫Number類floatValue()方法 (Number Class floatValue() method) floatValue() method is available in java.lang package. floatValue()方法在java.lang包中可用。 floatValue() method is used to return the value denoted by this Number object converted …

array_column php什么版本可以用,array_column兼容php5.5以下版本

gistfile1.txt// ----------------------------------------------------------------------// |獲取二維數組中指定的一列&#xff0c;PHP5.5以后有專用函數array_column()// ----------------------------------------------------------------------// |param array $arr// …

。net學習之控件的使用注意點

jQuery使用 1、自定義屬性的使用<script>$(#xwjj_i_main br[brinfoPd_KangQiao_Subject_Xwjj_br_1]).hide();</script> 2、ready代碼塊$(document).ready(function(){ //你的代碼}); 3、簡單的特效hide&#xff08;&#xff09;$("a").click(function()…

09-CNN手寫數字識別

CNN卷積神經網絡的本質就是卷積運算 維度的調整&#xff1a; tf.reshape(imageInput,[-1,28,28,1]) imageInput為[None,784]&#xff0c;N行* 784維 調整為 M28行28列*1通道 即&#xff1a;二維轉化為四維數據 參數一&#xff1a;等價于運算結果M 參數二&#xff1a;28 28 表示…

【轉】左值與右值

出處&#xff1a;http://www.embedded.com/electronics-blogs/programming-pointers/4023341/Lvalues-and-Rvalues C and C enforce subtle differences on the expressions to the left and right of the assignment operator If youve been programming in either C or C for…

Opencv將處理后的視頻保存出現的問題

問題描述&#xff1a; 代碼運行過程中&#xff0c;imshow出來的每幀的效果圖是正確的&#xff0c;但是按照網上的方法保存下來卻是0kb&#xff0c;打開不了。 參考的網上的一些方法&#xff0c;均是失敗的&#xff0c;具體原因我也不清楚&#xff1a; 1、例如我這樣設置&#x…

Java Number shortValue()方法與示例

Number類shortValue()方法 (Number Class shortValue() method) shortValue() method is available in java.lang package. shortValue()方法在java.lang包中可用。 shortValue() method is used to return the value denoted by this Number object converted to type short (…

MATLAB可以打開gms文件嗎,gms文件擴展名,gms文件怎么打開?

.gms文件類型&#xff1a;Gesture and Motion Signal File擴展名為.gms的文件是一個數據文件。文件說明&#xff1a;Low-level, binary, minimal but generic format used to organize and store Gesture and Motion Signals in a flexible and optimized way; gesture-related…