使用nexus搭建内部Maven仓库及使用简介

由于项目组需要,要搭建内部的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
如下图:
使用nexus搭建内部Maven仓库及使用简介_第1张图片
依次登陆,配置Central的Repository。这个是一个proxy类型的Repository,用来代理别的如官方的Repository,能帮你自动下载,我们也可以再添加别的proxy类型的Repository。
需要注意,改下URL(推荐http://www.mvnsearch.org/maven2/),Download Remote Indexes改为true。
使用nexus搭建内部Maven仓库及使用简介_第2张图片

配置下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,找不到再去别的地方找
<repositories>
		<repository>
			<id>136</id>
			<name>136 Repository</name>
			<url>http://192.168.85.136:28080/nexus-2.0.5/content/groups/public/</url>
		</repository>
		<repository>
			<id>jboss-cache</id>
			<name>jboss-cache</name>
			<url>http://repository.jboss.org/maven2</url>
		</repository>
		<repository>
			<id>mvnsearch</id>
			<name>mvnsearch Maven Repository</name>
			<url>http://www.mvnsearch.org/maven2</url>
		</repository>
	</repositories>


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

首先,修改maven的配置文件 setting.xml
<settings>  
...   
<servers>  
  <server>  
    <id>nexus-releases</id>  
    <username>admin</username>  
    <password>admin123</password>  
  </server>  
  <server>  
    <id>nexus-snapshots</id>  
    <username>admin</username>  
    <password>admin123</password>  
  </server>     
</servers>  
...   
</settings>


然后,在项目的pom.xml中加入如下配置。
<project>  
...  
<distributionManagement>  
  <repository>  
    <id>nexus-releases</id>  
      <name>Nexus Release Repository</name>  
      <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>  
  </repository>  
  <snapshotRepository>  
    <id>nexus-snapshots</id>  
    <name>Nexus Snapshot Repository</name>  
    <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>  
  </snapshotRepository>  
</distributionManagement>  
...  
</project> 


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

三、个人理解
1.搭建本地仓库的目的之一是为了节省从官方repository下载jar包的时间(现在从局域网下载)
2.另外还有一个目的是管理第三方jar包和组内编写的jar包。

你可能感兴趣的:(maven,nexus,repository)