JAVA—咖啡館

          ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

          1、 為什么使用Nexus

                  如果沒有私服,我們所需的所有構件都需要通過maven的中央倉庫和第三方的Maven倉庫下載到本地,而一個團隊中的所有人都重復的從maven倉庫下 載構件無疑加大了倉庫的負載和浪費了外網帶寬,如果網速慢的話,還會影響項目的進程。很多情況下項目的開發都是在內網進行的,連接不到maven倉庫怎么 辦呢?開發的公共構件怎么讓其它項目使用?這個時候我們不得不為自己的團隊搭建屬于自己的maven私服,這樣既節省了網絡帶寬也會加速項目搭建的進程, 當然前提條件就是你的私服中擁有項目所需的所有構件。


          2、Nexus下載

                 下載地址:http://www.sonatype.org/nexus/go


          3、Nexus啟動

                 我下載的是zip包,解壓后進入\nexus-2.1.2-bundle\nexus-2.1.2\bin\jsw\,根據操作系統類型選擇文件夾,我選的是windows-x86-32文件夾,進入后可看到如下所示bat文件。

          圖(1)
          雙擊console-nexus.bat運行。游覽器中輸入http://127.0.0.1:8081/nexus/,出現圖(2)所示就代表nexus已經啟動成功。

          圖(2)

          8081為默認的端口號,要修改端口號可進入nexus-2.1.2-bundle\nexus-2.1.2\conf\打開nexus.properties文件,修改application-port屬性值就可以了。


          默認的用戶名和密碼:admin/admin123,登錄后看到圖(3)所示:

          圖(3)

          4、Nexus倉庫

               nexus的倉庫類型分為以下四種:

                         group: 倉庫組

                         hosted:宿主

                        proxy:代理

                        virtual:虛擬

           

                      首次登陸nexus后可以看到以下一個倉庫組和多個倉庫。


          圖(4)

                                 Public Repositories:  倉庫組

                                3rd party: 無法從公共倉庫獲得的第三方發布版本的構件倉庫

                                Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫

                                Central: 用來代理maven中央倉庫中發布版本構件的倉庫

                                Central M1 shadow: 用于提供中央倉庫中M1格式的發布版本的構件鏡像倉庫

                                Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫

                                Releases: 用來部署管理內部的發布版本構件的宿主類型倉庫

                                Snapshots:用來部署管理內部的快照版本構件的宿主類型倉庫


          4.1、創建Nexus宿主倉庫

          在Repositories選項頁的菜單欄上點擊Add按鈕會出現如下所示,選擇要添加的倉庫類型。

          圖(5)

          這里我點擊添加宿主類型的倉庫,在倉庫列表的下方會出現新增倉庫的配置,如下所示:

          圖(6)

          點擊save按鈕后就會在倉庫列表中看到剛才新增的倉庫。


          4.2、創建Nexus代理倉庫

          點擊菜單欄上的Add按鈕后選擇Proxy Repository,看到如下所示配置界面:

          圖(7)

          4.3、創建Nexus倉庫組

          倉庫組和倉庫關系是一對多的關系,一個倉庫組可以指向多個倉庫。

          點擊菜單欄上的Add按鈕選擇Repository Group就可以看到倉庫組的配置界面,如下所示:

          圖(8)

          點擊save后就可在倉庫列表中看到新增的倉庫組了,項目中如果要下載構件的話,配置文件中一般都用倉庫組的URL。


          5、修改Maven配置文件從Nexus下載構件

          1)如 果想對操作系統的所有用戶統一配置maven,則只需修改maven\conf\setting.xml 文件就可以了,如果只想對用戶單獨配置maven,只需將conf\setting.xml文件復制到C:\Documents and Settings\Administrator\.m2文件夾下(我這里假設系統裝在c盤,用戶為Administrator)。

           

          2)  打開setting.xml文件,可以看到如下代碼:

          1. <!-- localRepository  
          2.    | The path to the local repository maven will use to store artifacts.  
          3.    |  
          4.    | Default: ~/.m2/repository   
          5.   <localRepository></localRepository>  
          6.  -->  

          表示如果不設置localRepository,maven會默認將本地倉庫建到/.m2/repository文件夾下。


          設置localRepository如下代碼所示:

          1. <localRepository>F:\myCenterRepository</localRepository>  

          表示在myCenterRepository文件夾下建立本地倉庫。個人建議不要采用默認的倉庫地址,因為項目如果很多的話,那么本地倉庫所占的磁盤空間就比較多了,所以指定倉庫地址到其他盤符,更方便管理。


          5.2、在POM文件中配置Nexus倉庫

          在項目的pom文件中添加如下代碼:

          1. <repositories>     
          2.     <repository>     
          3.       <id>nexus</id>     
          4.       <name>my-nexus-repository</name>     
          5.       <url>http://127.0.0.1:7788/nexus/content/groups/public/</url>     
          6.       <releases>     
          7.         <enabled>true</enabled>     
          8.       </releases>     
          9.       <snapshots>     
          10.         <enabled>false</enabled>     
          11.       </snapshots>     
          12.     </repository>     
          13.   </repositories>     
          14.   <pluginRepositories>     
          15.     <pluginRepository>     
          16.       <id>nexus</id>     
          17.       <name>my-nexus-repository</name>     
          18.       <url>http://127.0.0.1:7788/nexus/content/groups/public/</url>     
          19.       <releases>     
          20.         <enabled>true</enabled>     
          21.       </releases>     
          22.       <snapshots>     
          23.         <enabled>false</enabled>     
          24.       </snapshots>          
          25.     </pluginRepository>     
          26.   </pluginRepositories>     

          在pom文件中配置只對當前項目有效,而實際開發中不可能在每個項目中重復配置信息,所以不建議在pom文件中配置。


          5.3、在setting.xml文件中配置Nexus倉庫

          1)maven提供了profile來配置倉庫信息,如下所示:

          1. <profiles>  
          2.     <profile>  
          3.       <id>myprofile</id>  
          4.       <repositories>  
          5.             <repository>  
          6.                 <id>central</id>                                     
          7.                 <url>http://central</url>                        
          8.                 <releases>  
          9.                     <enabled>true</enabled>  
          10.                 </releases>  
          11.                 <snapshots>  
          12.                     <enabled>true</enabled>  
          13.                 </snapshots>  
          14.             </repository>  
          15.         </repositories>     
          16.          <pluginRepositories>  
          17.             <pluginRepository>  
          18.               <id>central</id>  
          19.               <url>http://central</url>  
          20.               <releases>  
          21.                 <enabled>true</enabled>  
          22.               </releases>  
          23.               <snapshots>  
          24.                 <enabled>false</enabled>  
          25.               </snapshots>  
          26.             </pluginRepository>  
          27.         </pluginRepositories>  
          28.     </profile>  
          29. </profiles>  

          2) 激活profile

          1. <activeProfiles>  
          2.     <activeProfile>myprofile</activeProfile>  
          3.   </activeProfiles>  

          3)配置鏡像

          1. <mirrors>  
          2.     <mirror>     
          3.      <id>nexus</id>      
          4.      <url>http://127.0.0.1:7788/nexus/content/groups/public/</url>     
          5.      <mirrorOf>*</mirrorOf>     
          6.    </mirror>  
          7.  </mirrors>  

          這里配置mirrorOf的值為*,代表maven的所有訪問請求都會指向到Nexus倉庫組。


          6、部署構件到Nexus倉庫

          6.1、maven部署

          1) 修改pom文件

          在pom文件中添加如下配置:

          1. <distributionManagement>  
          2.        <repository>  
          3.            <id>my-nexus-releases</id>  
          4.            <url>http://127.0.0.1:7788/nexus/content/repositories/releases/</url>  
          5.        </repository>  
          6.          
          7.        <snapshotRepository>  
          8.            <id>my-nexus-snapshot</id>  
          9.            <url>http://127.0.0.1:7788/nexus/content/repositories/snapshots/</url>  
          10.        </snapshotRepository>  
          11.   </distributionManagement>  

          2)在setting.xml文件中添加認證信息:

          1. <servers>  
          2.      <server>  
          3.       <id>my-nexus-releases</id>  
          4.       <username>admin</username>  
          5.       <password>admin123</password>  
          6.     </server>  
          7.     <server>  
          8.       <id>my-nexus-snapshot</id>  
          9.       <username>admin</username>  
          10.       <password>admin123</password>  
          11.     </server>  
          12. </servers>  

          上面的配置中我用的是超級管理員的賬戶,開發項目中可以改為具有部署構件權限的用戶就可以了。

           

          3)執行部署

          測試的構件項目信息如下:

          1. <groupId>com.ez</groupId>  
          2.   <artifactId>TestJar</artifactId>  
          3.   <version>1.0</version>  
          4.   <packaging>jar</packaging>  
          5.   <name>TestJar</name>  

          從上面的信息中可以看出構件為發布版本,所以部署構件的話會自動部署至releases倉庫中。

           

          在命令行中執行:mvn clean deploy

          如果之前沒用執行過該命令,maven會自動到中央倉庫中下載部署所需的插件。最后在命令行中看到如下所示就代表構件已經部署成功。

          圖(9)

          到nexus的releases倉庫中查看剛剛部署好的構件信息如下所示:

          圖(10)

          如果部署失敗的要檢查一下用戶是否有部署的權限,目標倉庫是否允許部署,是否缺少部署所需的構件。


          6.2、手動部署

          手動部署構件則更為簡單了,在nexus的倉庫列表中點擊要部署的目標倉庫,然后點擊Artifact Upload選項卡看到下圖所示:

          圖(11)


          通過以上配置運用Nexus搭建的私服基本上可以用了,更多配置需求可參考Nexus book.

          Nexus book下載地址:http://download.csdn.net/detail/yaoqinzhou1943/4589583
          posted on 2014-05-26 10:40 rogerfan 閱讀(2257) 評論(0)  編輯  收藏 所屬分類: 【項目管理】
          主站蜘蛛池模板: 崇明县| 佛教| 惠州市| 遂宁市| 鹰潭市| 礼泉县| 太仓市| 上饶市| 新邵县| 班戈县| 多伦县| 舟曲县| 台东市| 丰镇市| 驻马店市| 甘德县| 三穗县| 乐山市| 嘉黎县| 类乌齐县| 靖远县| 汾西县| 轮台县| 延长县| 绩溪县| 芮城县| 剑川县| 龙南县| 手机| 招远市| 太保市| 周宁县| 阿勒泰市| 景洪市| 北安市| 嘉禾县| 榕江县| 城固县| 陇川县| 永靖县| 华坪县|