上一篇简单介绍了持续集成构建方案,其中提到了Maven的构建和Hundson的持续集成服务,这里主要介绍下利用Nexus搭建Maven私服的过程,在搭建的过程中遇到了很多问题,也查找了不少资料,将这些记录下来,以方便以后索引,感兴趣的同事可以按照这个在本机上搭建一个玩玩。
首先列出几个需要准备的下载包:
- Maven : 目前最新的版本是2.2.1,可从http://maven.apache.org/download.html下载;
- eclipse: 目前Qone online团队是统一用的ganymede 3.4;
- m2eclipse: Maven在eclipse下的一个插件,通过它可以替代命令行操作;直接通过eclipse自动更新下载;
- nexus: 用来管理maven构建包的中央仓库,目前最新版本是1.6.0,可从http://nexus.sonatype.org/download-nexus.html下载;
Maven包下下来后,会发现它的包其实很小,不到2M,它的核心其实不做什么实际的事情,只是解析一些 XML 文档,管理生命周期与插件。Maven 被设计成将主要的职责委派给一组 Maven 插件,这些插件可以影响 Maven 生命周期,提供对目标的访问。另外Maven本身维护有一个中央的集中仓库,里面包括了几乎所有的包和插件,当你运行Maven命令的时候,它会自动从中央仓库下载必要的插件和包,以执行命令。比如你有个项目用到了junit测试,那么要运行测试用例的话必须有相应的junit包,按以往的做法,我们需要去网上找到这个包,然后建个lib文件夹放到里面,然后引用。如果用Maven会怎样呢?你只需要在maven的pom.xml(Project Object Model)文件中,加上如下片段:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
即定义一个依赖,告诉maven你需要junit包,它的版本是3.8.1,这时候你敲个命令mvn test,它就会自动去中央仓库下载相应的junit包存到你本地,并运行单元测试。下次再运行的时候,它会先从你本地去找,找不到再去中央服务器下载。xp下默认的保存地址是C:\Documents and Settings\用户名\.m2\repository。这样可以解决什么问题呢?首先是版本依赖的问题,一个jar包多个版本的引用不会引发问题,你只要把版本标识好就行了,这个特性对于osgi和saas的可定制化实现是非常方便的。
可能有人要问:既然maven已经给我们提供了一个中央的仓库,那我们为什么还需要自己去建个私服呢?原因有几个:一是maven上面的包一般是公共的包,比如spring ,hibernate这些,假设我们自己内部开发的一些包或者一些引用的第三方包,那里面肯定是没有的,所以我们需要把这些包部署到我们自己的私服上; 二是网络原因,假设团队里每个成员都去下载这些包,肯定是占带宽且费时间。基于这两个原因,maven官方其实也是推荐企业去建立自己的私服,这样可以降低官方仓库的压力。
如果建立了maven的私服,这时候运行程序所需的包,maven会先从本地找(就是前面提到的C:\Documents and Settings\用户名\.m2\repository目录),本地找不到就去私服上找,再找不到就去maven中央仓库找,找完了下下来先放到私服上,这样下次就不用重新下载了。nexus提供了强大的功能去管理和维护这样一个maven仓库,同时通过lucene提供包的检索。下面简单介绍下整个的安装过程:
一 Maven安装
Maven的安装很简单,解压出来,然后将bin目录D:\Program Files\apache-maven-2.2.1\bin(根据安装地址而定)添加到path环境变量即可。安装完可打开命令行,运行mvn -version看是否安装成功;
二 m2eclipse安装
要安装m2Eclipse 插件,你需要符合一些先决条件。你需要运行Eclipse 3.2 或更高版本,JDK 1.4 或更高版本,你需要确认Eclipse 是在JDK 上运行而不是JRE。在你有了Eclipse 和兼容的JDK 之后,你需要安装几个Eclipse 插件:Subclipse
,Mylyn Web Tools Platform (WTP) , AspectJ Development Tools (AJDT)。
以我们使用的eclipse 3.4 Ganymede 为例,你需要选择Help → Software Updates…,它会载入”Software Updates and Add-ons”对话框。在这个对话框中,选择”Available Software”面板然后点击Add Site…,它会载入”Add Site” 对话框。输入更新站点的URL 然后点击OK。在”Software Updates and Add-ons”对话框中会出现更新站点上可用的插件。你可以选择你想要安装的模块然后点击Install…按钮。Eclilpse 会解析所选插件的所有依赖,然后要求你同意插件的许可证。在Eclipse 安装了新的插件之后,它会征求你的允许以重启。
m2eclipse的update site是http://m2eclipse.sonatype.org/sites/m2e
三 nexus安装
1.【下载Nexus】首先在nexus的官网下载nexus的最新版本,我下载的是1.6.0的zip版本(nexus-oss-webapp-1.6.0-bundle.zip),大小是17M,解压到一个文件夹下。
2.【启动服务】打开bin目录,里面有不同系统下的应用,以32位的xp为例,进入.\nexus-oss-webapp-1.6.0-bundle\nexus-oss-webapp-1.6.0\bin\jsw\windows-x86-32文件夹,进去后直接点击nexus.bat启动Nexus的服务。
3.【管理员登入】当服务正常启动后在浏览器输入Nexus的URL:http://localhost:8081/nexus,注意这里默认的端口号是8081,打开页面后可以在右上角看到Login字样,点击登录,默认用户名admin,密码为admin123.
4. 【开启远程索引下载】 nexus默认是关闭远程索引下载功能的,主要是担心会造成对服务器的巨大负担,需要我们手工开启。开启的方式:点击Administration菜单下面的Repositories,将这三个仓库Apache Snapshots,Codehaus Snapshots,Maven Central的Download Remote Indexes修改为true。然后在这三个仓库上分别右键,选择Re-index,这样Nexus就会去下载远程的索引文件。
5. 【配置maven】 要让maven使用nexus作为私服,需要做一些设置,将maven安装目录下conf文件夹下的settings.xml拷贝到~/.m2/下(前面已经提到,即C:\Documents and Settings\用户名\.m2\repository目录),然后修改settings.xml文件,增加如下元素:
<mirrors>
<mirror>
<id>Nexus</id>
<name>Nexus Public Mirror</name>
<url>http://localhost:8081/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
…
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://localhost:8081/nexus/content/g … /public</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
6.【部署构建到nexus】要部署构件至Nexus,在distributionManagement中提供仓库URL,然后运行mvn deploy。Maven会通过一个简单的HTTP PUT将项目POM和构件推入至你的Nexus安装。需要配置你项目POM中distributionManagement部分的repository。 添加如下xml片段:
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://localhost:8081/nexus/content/r … eleases</url>
</repository>
<snapshotRepository>
<id>Snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8081/nexus/content/r … apshots</url>
</snapshotRepository>
</distributionManagement>
为了防止部署的时候出现认证错误,还需要在~/.m2/settings.xml中添加如下的服务器登录信息:
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>Snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
至此,一个简单的Nexus私服就搭建完毕了,手都写酸了,具体细节性的配置和功能就不详细说了,后面搭建到服务器上后大家可以访问,通过界面去操作可能更直观。
<!-- END entry -->
分享到:
相关推荐
Windows 下Nexus搭建Maven私服 Windows 下Nexus搭建Maven私服
关于使用Nexus搭建Maven私服的开发文档。新手了解一下。
Nexus搭建Maven私服 +maven安装步骤
提供了基于Nexus搭建Maven私服所需要的一切资源和个人经验,搭建后可maven deploy 上传自己的jar包。别人如何在自己的maven项目中引用我将单独再上传一份。
Maven Nexus 私服搭建 从零开始,资源下载、安装指导、开发配置说明
maven使用及Nexus搭建Maven私服
详细的使用Nexus搭建Maven私服的步骤指导
使用nexus 可以搭建maven私服,如何使用nexus搭建maven 本地服务器呢?
操作步骤清晰 简单易懂,分分钟就完成搭建
nexus搭建maven私服1
nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库
使用Nexus1.8搭建MAVEN私服详细步骤,以及在网页上上传JAR包
nexus maven私服搭建nexus maven私服搭建nexus maven私服搭建nexus maven私服搭建nexus maven私服搭建nexus maven私服搭建
在CentOS7上用Nexus3搭建Maven私服。 一、需要的环境 CentOS 7里需要安装jdk8和Maven3,具体的安装步骤可以百度一下。 二、需要的包 需要nexus3的安装包,官网上https://www.sonatype.com/download-oss-sonatype...
我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话
如果没有私服,我们所需的所有构件都需要通过maven的...这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。
nexus3搭建maven 私服资源