前置条件:

1.安装jdk,可参考 http://www.cnblogs.com/grey-wolf/p/6480489.html

2.nexus仓库管理器,分为两个版本,Nexus Repository Manager OSS 和 Nexus Repository Manager Pro。前者可以免费使用,相比后者,功能缺少一些,但是不影响我们搭建maven私服。

所以就选择OSS版本。

下载地址:https://www.sonatype.com/download-oss-sonatype,下载不下来可以去这里 http://download.csdn.net/detail/cctvckl/9766638

文档下载地址:

http://books.sonatype.com/nexus-book/pdf/nxbook-pdf.pdf

好了,让我们正式开始吧。

  1. 安装nexus服务器
  • 上传tar.gz包到指定目录(我这边假定是/home/ckl/upload)

  rz
  mv nexus-2.14.3-02-bundle.tar.gz /home/ckl/upload/

  • 解压到/usr/local
    tar -zxvf /home/ckl/upload/nexus-2.14.3-02-bundle.tar.gz -C /usr/local/

  注意:

  一定要解压到这个目录下,具体原因我也不知道,文档里是这么做的,我们也没必要自己找麻烦。

  • 建立软链接

  sudo ln -s nexus-2.14.3-02 nexus

  • 查看/usr/local目录,结果如下:

  

  • 设置环境变量(按官网文档的说法是可选,不过还是配上吧)

  vim /etc/profile,在最后加上下面这一句,:wq保存退出

  

  • source /etc/profile 刷新刚设置的环境变量,使之生效
  • 查看结果

  

  1. 启动服务器

(博客园的这个数字序号不知道怎么才能设成2.有知道的朋友麻烦告知下)

  前台启动:

  cd /usr/local/nexus
  ./bin/nexus console

  以后台进程启动:

  ./bin/nexus start
  查看输出的日志:

  tail -f logs/wrapper.log

  好了,我们来前台启动一下。咦,没起来,提示:

  

  意思是坚持使用root用户运行的话,需要设置一个环境变量.

  vim /etc/profile

  结尾加上

  export RUN_AS_USER=root

  保存退出。

  刷新:source /etc/profile

  再次运行,结果如下:

从红框标识及相关文档,可以知道,进程在8081端口启动。

好了,我们在浏览器上看看能不能访问吧,路径:

http://192.168.2.141(换成你的ip):8081/nexus.

结果如图所示:

点击右上角登录:

默认用户名为admin,密码admin123

3.搭建私服

3.1 界面元素介绍

登录后,点击左侧Repositories,界面如上图所示。

右侧的列表中,可以看到nexus预设的几个仓库。

第一个public Repositories,类型为group,这个简单理解为仓库的集合,下面的仓库就是可以加入到这个集合的元素。

对外可以只提供一个单独的url,如上图显示为:http://192.168.2.141:8081/nexus/content/groups/public/

大部分的终端用户,只需要配置上面这一个单独的聚合后的url,而不用单独配置多个仓库。用户也不需要知道某个jar包具体来源于maven 中央仓库,或者是Apache Snapshots,或者是我们自己添加的其他仓库。

这样的好处在于:如果我们要新增某个仓库(如开源中国、阿里云),客户端不需要做任何更改,只需要在nexus上将要新增的仓库加入到对外提供服务的仓库 group中就可以。

第二个3rd party,与倒数第一个和第二个仓库,Releases和Snapshots一样,类型为hosted,意思是由nexus本机管理的仓库。该仓库用于商业化的,第三方提供的非开源的依赖仓库,如oracle jdbc driver。

倒数第二个Releases,用于存放开发团队内部用的正式版的依赖。

倒数第一个Snapshots,用于存放开发团队内部日常构建的频率更新较快的依赖包。

Apache Snapshots和Central类型都是proxy,意思是远端仓库的代理。前者包含了Apache Software Foundation 发布的快照版本(这么翻译不知道对不对),后者为Maven中央仓库,我们平时maven默认就是连接该仓库。

Central M1 Shadow类型为virtual,按官方文档的意思是,只是已有仓库的一个不同呈现方式的映射。有需要可以参考官方手册6.2.3节。

3.2 仓库集合的界面

点击Configuration,可以看到当前添加到该集合的仓库列表及顺序(优先级高的在上面,可用鼠标拖拽),当我们新增了仓库,将会出现在右侧的available Repository,添加到左边即可。

如果有哪个仓库不想加入到该集合,也可以拖拽到右边来。

3.3使用本地maven客户端测试nexus是否成功部署

首先复制仓库集合的repository url,客户端配置需要用到。

配置maven客户端:

打开settings.xml,按照如下步骤修改:(该部分参考文档4.2节)

  <mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.2.140:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
  <profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>


接下来在ide中测试下(我个人用maven命令行不多,不熟悉,还是用intelj idea演示吧)

在idea中依次打开File--Settings--搜索Maven--出现如下界面:

保证上述几项指向正在用的maven目录和配置文件即可。点击ok,退出。

打开Maven Projects窗口,勾选Profiles中的nexus。

随便新建一个maven工程,在pom中添加一项本地仓库中没有的依赖,应该出现如下图示:(下图可以看出,正在去我们配置的私服下载maven依赖)

至此。大体配置完成。

上传本地内部依赖到私服,可以参考:

http://jingyan.baidu.com/article/a948d6517b72eb0a2dcd2e2a.html

ps:有问题欢迎大家一起讨论,也可以直接参考文章开头发的pdf文档,非常详细。

centos7搭建nexus maven私服的更多相关文章

  1. centos7搭建nexus maven私服(二)

    本文主要补充两个主题: 1.手动更新索引 2.通过maven客户端发布本地jar包到nexus 先说第一个主题: 由于maven中央仓库汇集了全世界绝大多数的组件,所以它的索引库非常庞大,在我们右击仓 ...

  2. linux 搭建 nexus maven私服仓储

    一.下载 1.创建下载软件包目录  mkdir /home/install 2.在/home/install下载nexus包,或者将下载好的nexus压缩包上传至/home/install wget ...

  3. Centos 基础开发环境搭建之Maven私服nexus

    hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件  ...

  4. Linux 下搭建 Sonatype Nexus Maven 私服

    一.为什么需要搭建mave私服 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的 ...

  5. 【Maven】3.使用IntelliJ IDEA 使用本地搭建的maven私服,而不是使用默认的maven设置

    安装Idea的教程:http://www.cnblogs.com/sxdcgaq8080/p/7641379.html 搭建maven私服的教程:http://www.cnblogs.com/sxdc ...

  6. nexus Maven私服的相关配置

    Maven私服中如需本地上传Maven私服内容则需在  setting.xml中配置如下: <server> <id>nexus-releases</id> < ...

  7. 使用Nexus搭建本地Maven私服

    搭建了好几天这个还是不大好使,今天看了一篇文章是讲这个的,然后根据其情况,加上自己的更改最后搭建成功了 1.下载nexus, 下载地址:http://www.sonatype.org/nexus/go ...

  8. Nexus Maven 私服搭建

    1.下载Nexus安装文件:http://www.sonatype.org/nexus/go ,目前是nexus-2.13.0-01-bundle.tar.zip这个最新版本: 2.解压到任意目录,我 ...

  9. centOS7搭建nexus私服

    1.保证JDK,MAVEN已安装,firewalld服务安装 PS:yum install firewalld 2.官网下载:https://www.sonatype.com/download-oss ...

随机推荐

  1. java_web学习(2)Servlet

    软件编程体系 B\S 系统架构与C\S 系统结构 Web服务器         HTTP 协议:Web 浏览器与 web 服务器的交互所遵循的规则.         Web 服务器:Web服务器可以解 ...

  2. 3.3. 轻量级的迁移方式(Core Data 应用程序实践指南)

    持久化存储协调器会试着用新版的模板打开原来的持久化存储区,但是那是旧的模板,旧的格式,当然会出错.现在要做的就是迁移现有的持久化数据区,以便跟新模型匹配. 怎么进行迁移呢? 在什么时候进行迁移? 在向 ...

  3. php session 生命周期代码实例

     php session 生命周期代码实例        我们为什么需要Session,就是因为我们需要存储各个用户的状态数据.那么试问,如果由你来设计解决这个需求的方案,那么也许你会设置这样一个数据 ...

  4. Oracle 表空间迁移

    迁移表空间databump 使用databump导入导出,两个库用户必须一致,否则另一个库导入的时候会报错.所以两个库都是用helei用户. 给两个数据库的用户分别授予dba权限,这里只是实验更清晰而 ...

  5. 如何用C语言封装 C++的类,在 C里面使用

    本文给出了一种方法.基本思想是,写一个 wrapper文件,把 C++类封装起来,对外只提供C语言的接口,和 C++i相关的都在  wrapper的实现文件里实现. 1. apple.h #ifnde ...

  6. Servlet 获取IllegelStateException

    Servlet 获取IllegelStateException: response提交之后,进行requestDispatcher.forwar(),会产生这样的问题: 但是必须是outputStre ...

  7. LoadRunner面试题

    在LoadRunner中为什么要设置思考时间和pacing 答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容, ...

  8. 为什么我最终替换掉了NATS

    之前公司没有使用msmq/rebbitmq等消息队列,一方面是觉得太重,想避免在引入中间件.另外的原因是公司的业务并不需要消息持久化和确保可送达(at-least-once VS at-more-on ...

  9. Linux Platform驱动模型(二) _驱动方法

    在Linux设备树语法详解和Linux Platform驱动模型(一) _设备信息中我们讨论了设备信息的写法,本文主要讨论平台总线中另外一部分-驱动方法,将试图回答下面几个问题: 如何填充platfo ...

  10. cmake的四个命令:add_compile_options、add_definitions、target_compile_definitions、build_command

    cmake的四个命令:add_compile_options.add_definitions.target_compile_definitions.build_command add_compile_ ...