用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解压。 
修改一下配置\nexus-2.0.5\WEB-INF\plexus.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包。
posted @ 2013-12-20 15:23  yangkai_keven  阅读(418)  评论(0)    收藏  举报