maven学习(中)- 私服nexus搭建

上回继续,相信大家对maven每次都联网从国外站点下载依赖项的龟速网络已经不坎忍受了,今天先来看看如何搭建"仓库私服",目前nexus是使用比较广泛的私服软件之一,下面将介绍基本用法:

 

一、到nexus官网下载最新版

1.1 下载地址:http://www.sonatype.org/downloads/nexus-latest-bundle.zip (目前最新版本是2.7.2-03)

(2015-07-02注: 上面的下载地址好象已经失效了,新的地址为 http://www.sonatype.org/nexus/archived/ )

1.2 下载完后,解压到指定目录,比如:c:\java\nexus\

1.3 启动nexus

%nexus_home%\bin\nexus.bat install (安装成windows服务)

%nexus_home%\bin\nexus.bat start (启动)

tips : 直接nexus.bat不带参数,会显示完整的参数列表

参考下图,如果启用不起来,检查jdk版本,nexus要求1.7版本(如果版本不对,请调整环境变量JAVA_HOME指向jdk1.7的目录)

如果换成1.7还是启用不了,建议用nexus.bat console 控制台方式启用,这样可以看到详细启动过程

启动成功后,可以用http://localhost:8081/nexus 进入控制界面

点击右上角的Log In,默认用户名/密码是admin/admin123

 

二、添加jboss资源库地址

2.1 先了解下nexus的资源库类型:

Hosted Repository - nexus本机的资源库(相当于nexus所在服务器硬盘上已经存在的jar、pom文件库)

Proxy Repository - 代理库,很多开源官方组织都在互联网上公布了Repository,供全世界的开发者使用,nexus中设置该类型的资源库后,其它使用nexus的开发者,表面上是在请求nexus服务器上的jar包,但nexus实质是背后是在请求这些互联网资源,首次会把服务器上没有的资源,从网上download到nexus服务器(以文件形式保存到硬盘上),然后再返回给开发者,下次再有同样的pom/jar请求时,直接从服务器硬盘上返回,不再请求互联网

Repository Group - 资源组,比如我们有很多资源库:资源库A、资源库B...,可以把它们再成组合一个特殊的资源C,然后其它开发人员,在maven里配置资源C地址,这样maven在向资源C请求jar包里,实质会搜索资源A、资源B

 

2.2 添加jboss 代理资源库

maven默认的官方资源库http://repo1.maven.org/maven2/,很多第三方的jar包没有,所以我再添加一个jboss的资源库

点击左侧的Repositories,然后再点击右侧的Add,会弹出下拉菜单,选择Proxy Repository

接下来,参考下图填写:

Respository ID这里填写:jboss-public-repository-group (可以自已改名字)

Respository Name这里填写:JBoss Public Maven Repository Group (可以自已改名字)

其它项保持默认

Remote Storage Location这里填写:https://repository.jboss.org/nexus/content/groups/public-jboss/ (这是jboss公布的公开资源库)

 

2.3 下载jboss eap 6.x的离线资源包

首次使用nexus时,私服服务器上实质上没有任何jar包的缓存,所以第一次使用时,其实跟直接到互联网上下载没啥区别,只有后面再请求相同的jar包,服务器上才会有jar文件缓存,为了加快速度,我们可以直接上jboss官网下载离线资源包

下载地址: htp://www.jboss.org/jbossas/downloads

然后解压到指定目录,建议放在 %nexus_home%\sonatype-work\nexus\storage\ 下

然后add一个hosted repository,参考下图:

 

2.4 把刚才添加的二个respoitory添加到Public Repositories组

刚才我们添加了二个新的资源库,检查一下是否包括在默认的Public Repositories组里

如果没包括在组里,参考上图处理一下,然后保存。最后建议更新一下索引,参考下图:

 

三、修改本机当前用户下.m2目录下的settings.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
 4           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5           xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 6
 7   <mirrors>
 8     <mirror>
 9       <id>nexus</id>
10       <mirrorOf>*</mirrorOf>
11       <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
12     </mirror>
13   </mirrors>
14
15   <profiles>
16     <profile>
17       <id>nexus</id>
18       <repositories>
19         <repository>
20           <id>nexus</id>
21           <name>Nexus</name>
22           <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
23           <releases><enabled>true</enabled></releases>
24           <snapshots><enabled>true</enabled></snapshots>
25         </repository>
26       </repositories>
27       <pluginRepositories>
28         <pluginRepository>
29           <id>nexus</id>
30             <name>Nexus</name>
31             <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
32             <releases><enabled>true</enabled></releases>
33             <snapshots><enabled>true</enabled></snapshots>
34         </pluginRepository>
35       </pluginRepositories>
36     </profile>
37   </profiles>
38   <activeProfiles>
39     <activeProfile>nexus</activeProfile>
40   </activeProfiles>
41
42  </settings>

注:大家自行把这段xml中的地址换成nexus服务器的ip。

然后随便创建一个maven项目,执行mvn clean package 之类,观察下输出:

从上图可以看出,现在依赖项都是从nexus服务器下载的

 

四、eclipse中添加资源xml

最后再补充一个小技巧,这跟私服其实关系不大。每次我们在eclipse里创建maven project时,都会弹出一个界面,让我们选择“项目模板“,这个过程需要联网获取模板列表,而且每次都次重复获取,很不合理,如下图:

可以点击Confiure,会弹出以下界面,点击”Add Local Catalog“

先在浏览里访问 https://repository.jboss.org/nexus/content/groups/public-jboss/archetype-catalog.xml 这个地址,然后保存为xml文件,接下面的界面里 Catalog File里,选择这个xml文件,然后Description填写一个名字

然后在创建Maven项目时,就可以直接选择这个了,选择后,将直接读取本机xml的内容,比联网获取要快得多

 

最后给一个小技巧:

有时候,在单位的局域网里架构nexus服务器,服务器并不能访问外网,这样就无法通过代理库从互联网下载jar包,可以这样做:

开发人员的机器通常是能上网的,先在本机修改settings.xml,不走nexus私服,直接从互联网中央仓库下载一次,把所有东西编译好以后,将本机 "当前用户\.m2\repository"复制到nexus私服服务器的相应存储目录,一般则nexus同级目录下的sonatype-work\nexus\storage\central 目录,然后再登录nexus管理界面手动更新索引,以后其它人就能正常使用nexus私服了。

 

下一节将学习如何利用profile来生成各种不同环境的部署包

时间: 2024-11-05 16:25:24

maven学习(中)- 私服nexus搭建的相关文章

maven学习十之myEclipse搭建maven项目总结

步骤一 下载并安装maven,并配置M2_HOME和path.   步骤二 利用myEclipse自带maven插件生成.m2文件夹之,并拷贝maven安装包的settings.xml文件之.m2文件夹,做需要的修改.   步骤三MyEclipse新建maven项目,或者新建普通项目添加maven支持.   步骤四 根据需要写pom.xml文件.   完成上诉4个步骤,就可以实现maven对项目的管理.如果需要搭建私服,还得需要以下操作.   步骤五 下载并安装Nexus.   步骤六 拷贝需要

Maven学习五之Nexus中各repository介绍

  这时候已经搭建好了Nexus,要做操作前先登录,默认用户名admin,默认密码admin123.来看看各个Repository.点击左侧Repositories.     一 Public Repositories   先来看仓库类型 hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库.比如公司的第二方库. proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库. group:仓库组,用来合并多个hosted/proxy仓库.   这是一个Group,是一个仓

使用nexus搭建Maven私服

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52190619作者:朱培      ID:sdksdk0      邮箱: zhupei@tianfang1314.cn   -------------------

MAVEN学习笔记之私服Nexus(2)

MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Adminisrator path b:修改java的绝对路径 文件bin\jsw\config\wrapper.config 内容wrapper.java.command=E:\IDE\Java\JDK\bin\java c:cmd中 nexus install ;nexus start localhost

【Maven学习】Nexus OSS私服仓库的备份与迁移

背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nexus OSS私服仓库 新的Nexus OSS私服仓库 明显老的Nexus OSS私服仓库的内容比新的Nexus OSS私服仓库的内容多.因此我们现在的工作就是将办公室上的老的Nexus服务器上的所有的数据迁移到机房的Nexus服务器.这一篇博客记录下整个Nexus OSS私服仓库的备份与迁移的过程.

【Maven学习】Nexus私服代理其他第三方的Maven仓库

一.背景 [Maven学习]Nexus OSS私服仓库的安装和配置http://blog.csdn.net/ouyang_peng/article/details/78793038 [Maven学习]Nexus OSS私服仓库的备份与迁移http://blog.csdn.net/ouyang_peng/article/details/78796215 通过前面的两篇博客,我们已经将Nexus搭建好并且迁移到了新的机房,现在我发现我们之前的Nexus私服服务器居然没有对第三方经常使用的JCente

Nexus搭建Maven私服

1. 为什么使用Nexus         如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程.很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服

maven 仓库 使用nexus搭建了私服在局域网另一台电脑上

问题描述 maven 仓库 使用nexus搭建了私服在局域网另一台电脑上 maven 仓库 使用nexus搭建了私服在局域网另一台电脑上,本来正常的,今天要加个依赖,去查找log4j报错 An internal error occurred during: "Repository search". java.lang.OutOfMemoryError: Java heap space 解决方案 刷新下Maven项目,可能是私服地址配置的不对,页可能你加的这个依赖在其它库中,中央仓库里下

Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服

1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程. 很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用? 这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目