转自:https://www.cnblogs.com/grey-wolf/p/6481166.html

centos7搭建nexus maven私服

 

前置条件:

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文档,非常详细。

nexus使用方法的更多相关文章

  1. 部署nexus服务

    一.安装和启动 官网下载nexus-2.12安装包,地址:https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.12.0- ...

  2. Linux 下迁移 Nexus3

    Nexus3 的迁移过程还是非常简单,复制整个目录到新服务器,启动即可. 备份 在原来服务器上将 nexus3 整体目录备份即可. $ tar -zcvf nexus3.tar.gz nexus3/ ...

  3. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  4. nexus 数据库备份任务webhook 通知-另外一种方法

    使用benthos 做为webhook,是一种方法,功能很强大,但是有点复杂,所以换了一个更简单直接的webhook 工具 根据请求的数据,只处理关于db exporter 任务部分的消息,然后就是调 ...

  5. 〖Android〗Nexus 7 flo (razor) 刷入Recovery/CM-11.0后卡在开机动画的解决方法

    操作日志: 起因:Nexus 7 flo 华硕平板,刷了一个CWM Recovery之后变成了砖机: 尝试1:使用CWM Recovery清除数据,开机失败 尝试2:刷入CM 11 Snapshot的 ...

  6. Nexus 5更新 Android5.0 失败解决方法

    Android 5.0最终推出了正式版,今天也及时刷到了Android5.0 (LRX21O),官方链接:https://developers.google.com/android/nexus/ima ...

  7. Nexus设备升级5.0方法

    1. 从该页面为您的设备下载适当的系统映像.然后将它解压缩到一个安全的文件夹. 2. 通过 USB 连接到您的计算机. 3. 使用下列的方法,在fastboot mode下启动设备: 使用 adb   ...

  8. nexus 增加代理仓库 无法搜到snapshot的jar包 解决方法

    如题, nexus 私服 增加了另一个 私服,  但是无法搜到 版本中带有 snapshot字样的 jar包. 环境情况: 1.老私服: 首先版本中带有 snapshot字样的 jar包,是发布在 老 ...

  9. nexus私服快速update index方法

    简单搭好nexus私服后,做好基本的配置. 稍微麻烦点的就是让其更新Jar索引文件.如果有耐心的话,完全可以通过在线更新索引的方式来做,但所消耗的时间较长,让人误以为出错了,不知所措. 下面介绍一种简 ...

随机推荐

  1. MongoDB自动删除过期数据--TTL索引

      前序: 由于公司业务需求,对于3个月前的过期数据需要进行删除动作,以释放空间和方便维护 本来想的是使用crontab写个脚本定时执行,但是看到Mongo本身就有自动删除过期数据的功能,所以还是用一 ...

  2. 修改jdk

    (一)修改jdk的path: (二)修改eclipse里面的jre环境 (三)修改具体项目的jre环境 build path -> config build path (四)修改服务运行环境

  3. SQL错误代码弹出提示信息类

    截获SQL错误代码弹出提示信息类 Code:public class DBErrorCode{    /// <summary>    /// 根据错误代码弹出错误提示    /// &l ...

  4. imx6 uart分析

    本文主要记录: 1.uart设备注册 2.uart驱动注册 3.上层应用调用有些地方理解的还不是很透彻,希望指正. 1.uart设备注册过程 MACHINE_START(MX6Q_SABRESD, & ...

  5. (转)live555从RTSP服务器读取数据到使用接收到的数据流程分析

    本文在linux环境下编译live555工程,并用cgdb调试工具对live555工程中的testProgs目录下的openRTSP的执行过程进行了跟踪分析,直到将从socket端读取视频数据并保存为 ...

  6. Python的类和函数的魔法

    class CustomClass: def customFun(self, id): print("fun_1",id ) if __name__ == '__main__': ...

  7. 电视不支持AirPlay镜像怎么办?苹果iPhone手机投屏三种方法

    导读:苹果手机多屏互动功能在哪里?iPhone苹果手机没有AirPlay镜像怎么办?三种方法教你苹果iPhone手机怎么投影到智能电视上. 前言: 苹果iPhone手机投屏到电视设备上,需要使用到Ai ...

  8. Kubernetes1.1源码分析(二)

    3.controller-manager模块 在controller manager模块中有几个重要的结构体.当中包含EndpointController.ReplicationManager.GCC ...

  9. Ubuntu 13.10 安装 Oracle11gR2

    #step 1:  groupadd  -g 2000 dba useradd   -g 2000 -m -s /bin/bash -u 2000 grid useradd   -g 2000 -m ...

  10. 什么是集群(Cluster)技术

    什么是集群(Cluster)技术Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理.此单一系统为客户工作站提供高可*性的服务.大多数模式下,集群 ...