文档章节

建立Maven私服 - Nexus (七)

半夏alvin
 半夏alvin
发布于 2014/01/24 22:02
字数 1039
阅读 16732
收藏 69

私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。通过建立自己的私服,就可以降低中央仓库负荷、节省外网带宽、加速Maven构建、自己部署构建等,从而高效地使用Maven。Nexus也是当前最流行的Maven仓库管理软件。

1. 安装Nexus
Nexus是典型的Java Web应用,它有两种安装包,一种是包含Jetty容器的Bundle包,另一种是不包含Web容器的war包。

1)下载Nexus
读者可以从官网http://www.sonatype.org/nexus/ 下载最新的Nexus,也可以到我分享的路径下载http://download.csdn.net/detail/amuguelove/6578111(竟然还要一个积分,服了自己了,没积分的就忽略这个地址吧)。

2)Bundle方式安装Nexus
a. 首先看下解压后的目录,结构:
    
nexus-2.6.2-01: 该目录包含了Nexus运行所需要的文件,如启动脚本、依赖jar包等。
sonatype-work:该目录包含Nenus生成的配置文件、日志文件、仓库文件等。
其中第一个目录是运行Nexus必须的,而第二个不是必须的,Nexus会在运行的时候动态创建该目录。

b. 配置Path,启动Nexus
首先在环境变量path下加入如下地址:D:\j2ee\nexus-2.6.2-01-bundle\nexus-2.6.2-01\bin;之后在cmd下启动Nexus服务:

如果看到以上输出,就说明启动成功了。这时打开浏览器访问:http://localhost:8081/nexus 就可以看到Nexus的界面了,如下图:

这时你可以单击界面右上角的Login进行登录,Nexus默认管理用户名和密码为admin/admin123。

2. Nexus的索引
这时你使用Nexus搜索插件得不到任何结果,为了能够搜索Maven中央库,首先需要设置Nexus中的Maven Central仓库下载远程索引。如下图:

单击左边导航栏的Repositories,可以link到这个页面,选择Central,点击Configuration,里面有一个Download Remote Indexes配置,默认状态是false,将其改为true,‘Save’后,单击Administration==> Scheduled Tasks, 就有一条更新Index的任务,这个是Nexus在后天运行了一个任务来下载中央仓库的索引。由于中央仓库的内容比较多,因此其索引文件比较大,Nexus下载该文件也需要比较长的时间。请读者耐心等待把。如果网速不好的话,可以使用其他人搭建好的的Nexus私服。后面会介绍。下图为Nexus后台运行的task图:

3. 配置Maven从Nexus下载构件

1)在POM中配置Nexus私服,这样的配置只对当前的Maven项目有效。

<repositories>
      <repository>
          <id>nexus</id>
          <name>Nexus Repository</name>
          <url>http://localhost:8081/nexus/content/groups/public/</url>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>true</enabled>
          </snapshots>
      </repository>
  </repositories>

2)在settings.xml中配置profile元素,这样就能让本机所有的Maven项目都使用自己的Maven私服。
<mirrors>
    <mirror>
      <id>central</id>
      <mirrorOf>*</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://localhost:8081/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>nexus</id>
          <name>Nexus</name>
          <url>http://localhost:8081/nexus/content/groups/public/</url>
            <releases>
			<enabled>true</enabled>
		  </releases>
          <snapshots>
			<enabled>true</enabled>
		  </snapshots>
        </repository>
      </repositories>
    </profile>
</profiles>

以上配置所有Maven下载请求都仅仅通过Nexus,以全面发挥私服的作用。

4. 部署构件到Nexus

1)在POM中配置

<project>
  ...  
  <distributionManagement>

    <snapshotRepository>
        <id>user-snapshots</id>
        <name>User Project SNAPSHOTS</name>
        <url>http://localhost:8081/nexus/content/repositories/MyUserReposSnapshots/</url>
    </snapshotRepository>
    
      <repository>
          <id>user-releases</id>
          <name>User Project Release</name>
          <url>http://localhost:8081/nexus/content/repositories/MyUserReposRelease/</url>
      </repository>
      
  </distributionManagement>
   ...
</project>
2)settings.xml中配置认证信息,Nexus的仓库对于匿名用户是只读的。
<servers>
  
    <server>
      <id>user-snapshots</id>
      <username>lb</username>
      <password>123456</password>
    </server>
	
    <server>
      <id>user-releases</id>
      <username>lb</username>
      <password>123456</password>
    </server>
	
  </servers>


最后,如果不想自己构建Nexus私服,或者更新Index很慢的话,可以使用OSChina搭建的Nexus私服,地址如下:http://maven.oschina.net/index.html,如下图:

建议大家可以在浏览器中收藏这个网站,平时也可以用来查看一下一些构件的依赖,如上图的右下角显示的。


© 著作权归作者所有

共有 人打赏支持
半夏alvin
粉丝 40
博文 48
码字总数 43348
作品 0
浦东
程序员
私信 提问
加载中

评论(3)

汤姆_凯特
汤姆_凯特
索引下载时间有点长
魏曼奇
魏曼奇
很不错,支持79
书一
书一
不错的一篇文章,赞
Linux搭建Maven私服Nexus3.x环境

一、Maven介绍 Apache Maven是一个创新的软件项目管理和综合工具。 Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件。...

898009427
08/06
0
0
【项目管理与构建】Nexus的详细介绍以及安装

前面几篇博文,我们介绍了怎么使用maven,这篇博文我们简单的介绍maven的私服Nexus。 简介 Nexus是Maven仓库管理器,也可以叫Maven的私服。Nexus是一个强大的Maven仓库管理器,它极大地简化了...

architect刘源源
02/09
0
0
maven小节,Nexus私服,构件打包发布,动态资源过滤,自动部署到本地或远程服务器

阅读此文的前提,对Maven 有一定了解,熟悉pom文件基础 1:Nexus 建立私服 ![在此输入图片描述][1] 手动建立仓库 ,仓库分类有1:宿主仓库 2:代理仓库 3:仓库组 关于建立私服,也很简单,不...

满风
2014/04/27
0
1
Maven学习 使用Nexus搭建Maven私服

为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发...

coder_life
2016/08/12
31
0
建立Maven私服 - Nexus

私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。通过建立自己的私服,就可以降低中央仓库负荷、节省外网带宽、加速Maven构建、自己部署构建等,从而高效地使用Maven。Nex...

紫瞳
2015/07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据解析之XPath & lxml库

XPath 定义 即XML路径语言(XML Path Language),是一种用来确定XML文档中某部分位置的语言,它基于XML的树状结构,提供在数据结构树中寻找节点的能力,也适用于HTML文档中; 开发工具 Chrome...

村雨1943
7分钟前
0
0
day148-2018-11-15-英语流利阅读-待学习

赴美生子恐结束?特朗普中期选举憋大招 毛西 2018-11-15 1.今日导读 在 2013 年,一部《北京遇上西雅图》让赴美生子这个曾经神秘的话题吸引了很多关注。每年,数以万计的父母远赴美国,并在那...

飞鱼说编程
37分钟前
23
0
OSChina 周四乱弹 —— 每次我穿短裙的时候

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享DM DOKURO的单曲《Reality Check Through The Skull》: 差点以为手机卡了 《Reality Check Through The Skull》- DM DOKURO...

小小编辑
47分钟前
244
7
Windows 10 设置 Java 环境变量

首先你需要在我的电脑中打开,找到环境变量属性。 找到环境变量属性 找到环境变量属性后单击将会看到下面的设置界面。 在这个界面中设置高级系统设置。 环境变量 在弹出的界面中选择设置环境...

honeymose
今天
3
0
用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部