zoukankan      html  css  js  c++  java
  • 用nexus搭建maven2内部服务器

    由于项目组需要,要搭建内部的Maven仓库,借鉴项目组内部及外部同事的经验选用nexus来搭建内部仓库。下面描述一下具体的步骤。 

    一、安装配置过程 
    1.下载nexus,地址http://www.sonatype.org/nexus/ 
    nexus版本有内嵌Jetty的bundle版本和war版本。内嵌Jetty的bundle版本直接可以独立运行,但由于内部一直用的Tomcat容器,所以选用了war版本。直接放到Tomcat下的webapps目录下即可 

    2.安装及配置步骤 
    把nexus-2.0.5.war放到Tomcat下的webapps目录,让Tomcat解压。 
    修改一下配置 exus-2.0.5WEB-INFplexus.properties。更改nexus存放repository的根目录 
    nexus-work=D:/java/MavenRepository/sonatype-work/nexus,原来的是usr.dir我试了一下是在c盘根目录下,我就改到这里了。 

    3.配置nexus 
    如下图: 

    依次登陆,配置Central的Repository。这个是一个proxy类型的Repository,用来代理别的如官方的Repository,能帮你自动下载,我们也可以再添加别的proxy类型的Repository。 
    需要注意,改下URL(推荐http://www.mvnsearch.org/maven2/),Download Remote Indexes改为true。 


    配置下Release Repository,其中Deployment Policy配置为允许重新部署。这个是本地Repository,主要用来存放组内的jar包的。 

    配置3rd Party Repository,也是本地Repository,主要是存放在maven官方下不到的,第三方的jar包。 

    配置Public Repository,Repository组。这个主要是给我们用来下载jar包的。把有可能用到的代理或者本地Repository都加进来,全部对外可见。 

    4.更新Repository的index 
    在更新之前是看不到任意jar包的,要更新下索引才行。右键public repository,更新index。会把public组包含的Repository的索引都更新。(如果更新不了,自己挨个手动更新,再重启容器试试)。更新会比较慢,但不会在前台显示,你可以再后台看看网络流量或者Repository存放目录的index的变化情况。 

    5.搜索jar包,如搜索log4j。如果可以搜索到,代表安装,配置,更新索引都成功了。 

    二、使用 
    1.在maven工程中添加对本地Repository的依赖 
    代码如下:优先搜索本地Repository,找不到再去别的地方找 
    Java代码  收藏代码
    1. <repositories>  
    2.         <repository>  
    3.             <id>136</id>  
    4.             <name>136 Repository</name>  
    5.             <url>http://192.168.85.136:28080/nexus-2.0.5/content/groups/public/</url>  
    6.         </repository>  
    7.         <repository>  
    8.             <id>jboss-cache</id>  
    9.             <name>jboss-cache</name>  
    10.             <url>http://repository.jboss.org/maven2</url>  
    11.         </repository>  
    12.         <repository>  
    13.             <id>mvnsearch</id>  
    14.             <name>mvnsearch Maven Repository</name>  
    15.             <url>http://www.mvnsearch.org/maven2</url>  
    16.         </repository>  
    17.     </repositories>  


    2.把组内共用jar包上传 
    两种方式,手动上传,简单就不介绍了,但是要自己填写版本之类的东西 
    重点介绍下使用maven上传 

    首先,修改maven的配置文件 setting.xml 
    Java代码  收藏代码
    1. <settings>    
    2. ...     
    3. <servers>    
    4.   <server>    
    5.     <id>nexus-releases</id>    
    6.     <username>admin</username>    
    7.     <password>admin123</password>    
    8.   </server>    
    9.   <server>    
    10.     <id>nexus-snapshots</id>    
    11.     <username>admin</username>    
    12.     <password>admin123</password>    
    13.   </server>       
    14. </servers>    
    15. ...     
    16. </settings>  


    然后,在项目的pom.xml中加入如下配置。 
    Java代码  收藏代码
    1. <project>    
    2. ...    
    3. <distributionManagement>    
    4.   <repository>    
    5.     <id>nexus-releases</id>    
    6.       <name>Nexus Release Repository</name>    
    7.       <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>    
    8.   </repository>    
    9.   <snapshotRepository>    
    10.     <id>nexus-snapshots</id>    
    11.     <name>Nexus Snapshot Repository</name>    
    12.     <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>    
    13.   </snapshotRepository>    
    14. </distributionManagement>    
    15. ...    
    16. </project>   


    最后,在命令行运行 mvn deploy即可,注意要把项目生成release,不是snapshot的。 
    我的eclipse里没有mvn deploy选项,我就用命令行这种比较笨的方式,但是也比较好使。 

    三、个人理解 
    1.搭建本地仓库的目的之一是为了节省从官方repository下载jar包的时间(现在从局域网下载) 
    2.另外还有一个目的是管理第三方jar包和组内编写的jar包。
  • 相关阅读:
    剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
    剑指 Offer——3. 从尾到头打印链表
    剑指 Offer——2. 替换空格
    剑指 Offer——1. 二维数组中的查找
    LeetCode 905. Sort Array By Parity 按奇偶校验排列数组
    LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
    SSH 代码笔记
    anaconda3安装caffe
    opencv多版本安装
    人脸文章与数据库
  • 原文地址:https://www.cnblogs.com/yangkai-cn/p/4016709.html
Copyright © 2011-2022 走看看