原文:https://yq.aliyun.com/articles/5981

第8章 私服nexus

本章详细介绍了nexus的安装过程,设置maven从私服下载构件,以及发布构件至nexus。

8.1 什么是nexus

nexus是一个web版的仓库管理软件

8.2 nexus安装

nexus安装非常简单。
下载地址:http://www.sonatype.org/nexus/go

本文以Linux环境为例,安装nexus:
1. 首先在/usr/local下建nexus目录
2. 将下载的zip包解压,将其中的nexus-2.11.4-01解压至nexus如图:

  1. 进入bin目录,将nexus设置为可执行权限:

cd bin

chmod +x nexus

  1. 设置root可执行nexus
    默认的nexus是不让root用户直接启动的,会报出如下错误

    `WARNING - NOT RECOMMENDED TO RUN AS ROOT`
    `If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.`

需要设置root执行权限
export set RUN_AS_USER=root
此语句仅临时设置root变量,重启linux后会无效,如需持久设置,需要修改环境变量,见以下步骤。

  1. 此时执行./nexus start即可启动nexus。

  1. 停止nexus

./nexus stop

  1. 配置环境变量,设置开机启动

    • 设置环境变量:

vim /etc/profile

在最后一行添加export set RUN_AS_USER=root

  • 设置开机启动
    进入到配置目录:

cd /etc/init.d

复制脚本cp /usr/local/nexus/bin/nexus nexus

添加系统服务:chkconfig --add nexus

设置启动级别为345:chkconfig --levels 345 nexus on

查看是否添加成功:chkconfig --list|grep nexus,如图

  • 修改脚本

vim /etc/init.d/nexus

第一行添加:
RUN_AS_USER="root"

然后,将NEXUS_HOME=".."修改为NEXUS_HOME="/usr/local/nexus"

如图:

  • 重启Linux
    reboot
  • 访问地址:http://<LinuxIP>:8081/nexus/#welcome

注意:重启Linux需要一段时间,不断刷新此地址即可。

查看nexus是否启动,`ps –ef|grep nexus`。

![Alt text](https://img.alicdn.com/imgextra/i2/653726111/TB2Kpa_hXXXXXXRXFXXXXXXXXXX_!!653726111.png)

8.3 nexus仓库设置

8.3.1 登录系统,修改密码

nexus默认的管理员密码是admin/admin123,为了安全起见,第一件事就是上来修改管理员密码。

8.3.2 nexus内置仓库介绍

1、 仓库类型介绍

仓库类型 介绍
group 仓库组
hosted 宿主仓库
proxy 代理仓库
virtual 虚拟仓库

2、 仓库介绍

仓库 介绍
3rd party 这是一个策略为Releases的宿主仓库,用来部署无法从公共仓库获得的第三方发布版本构件
Apache Snapshots 这是一个策略为Snapshots的代理仓库,用来代理ApacheMaven仓库的快照版本构件
Central 这是一个策略为Releases的代理仓库,用来代理maven中央仓库中发布的版本构件
Central M1 shadow 这是一个策略为Releases的虚拟仓库,用来提供中央仓库中M1格式的发布版本的构件
Codehaus Snapshots 这是一个策略为Snapshots的代理仓库,用来代理Codehaus Snapshots仓库的快照版本构件的仓库
Releases 这是一个策略为Releases的宿主仓库,用来部署管理内部的发布版本构件
Snapshots 这是一个策略为Snapshots的宿主仓库,用来部署管理内部的快照版本构件

8.3.3 索引

  • 开启远程索引
    一个新搭建的nexus,是一个空的仓库,nexus默认是关闭远程索引下载,打开步骤如图:

    注意:3个proxy类型的远程索引都需要打开

    然后在3个proxy类型的仓库上,点击右键,Repair Index,nexus就会去下载远程的索引文件。

    测试

    在Browse Remote 中搜索任意jar

8.3.4 创建宿主仓库

8.3.5 仓库组设置

  • 什么是仓库组?

仓库组是将多个仓库聚合成一个仓库地址,为maven提供服务。maven配置中,只需要配置仓库组的链接,即可同时得到多个仓库的构件。
仓库组中仓库的顺序决定了仓库组遍历其所含仓库的次序,所以应该将常用的仓库放在前面。

仓库组设置很简单:
点击type为group类型的仓库,configuration标签页中Ordered Group Repositories为当前组包含仓库,available repositories为可继续添加的仓库。

8.4 配置maven从私服下载构件

前面安装了nexus,目的就是让开发人员的maven链接私服下载构件。

修改maven配置文件setting.xml

找到profiles标签,设置代码:

<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>crop-nexus</name>
<url>http://你的NexusIP:8081/nexus/content/groups/public/</url>
<releases>
<!-- true表示开启仓库发布版本下载,false表示禁止 -->
<enabled>true</enabled> </releases>
<snapshots>
<!-- true表示开启仓库快照版本下载,false表示禁止 -->
<enabled>true</enabled> </snapshots>
</repository>
</repositories> <pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url> http://你的NexusIP:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<!-- 禁止快照版本,防止不稳定的插件影响项目构建 -->
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!-- 激活nexus私服 -->
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>

这样配置,maven就可以从私服下载构件了,但是会有个问题,他还会时不时的请求中央仓库,如果想完全让maven访问nexus私服,需要设置镜像mirrors来支持。

8.5 maven的镜像配置

maven配置镜像后,所有的构件都只会从镜像服务器下载。

<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>crop-nexus</name>
<url>http://你的nexusIP:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>

8.6 发布构件至nexus

8.6.1 配置distributionManagement

发布仓库一般分为Releases版和snapshot版,所以要配置2个仓库地址
注意:这个是在项目的pom.xml中配置的

<!-- 发布构件至私服nexus -->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>corp nexus-releases</name>
<url>http://你的nexusIP:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshot</id>
<name>corp nexus-snapshot</name>
<url>http://你的nexusIP:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

8.6.2 设置用户

配置好pom.xml后,需要指定发布用户,在setting.xml中设置:


<servers> <!-- 发布Releases版的账号,ID要与distributionManagement中的Releases ID一致 -->
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>******</password>
</server>
<!-- 发布snapshot版的账号,ID要与distributionManagement中的snapshot ID一致 -->
<server>
<id>nexus-snapshot</id>
<username>admin</username>
<password>******</password>
</server> </servers>

设置完成,使用命令发布至nexus

mvn deploy

在nexus中查看

Linux 搭建 nexus 私服【转】的更多相关文章

  1. linux 搭建 nexus 私服及配置

    安装篇 1.tar -zxvf nexus-latest-bundle.tar.gz 2.cd nexus-2.13.0-01/bin 3../nexus start 这时可能提示 ********* ...

  2. Linux安装配置maven以及搭建nexus私服(编写启动脚本)

    2011年07月12日16:32  下面介绍在Linux操作系统下安装配置maven和搭建nexus私服. 一.安装前的准备 下载 jdk http://www.oracle.com/technetw ...

  3. Linux 安装配置maven3.0 以及搭建nexus私服

    http://carvin.iteye.com/blog/785365 一.软件准备 1.apache-maven-3.0-bin.tar.gz 下载地址:http://www.apache.org/ ...

  4. Linux 搭建Nexus

    Linux 安装Maven和nexus代理仓库 1    说明 环境:redhat Enterprise Linux Server5.3-x64. 版本:Maven 3.0.5 ,Nexus-2.5. ...

  5. Linux_Centos中搭建nexus私服

    1.在Linux下搭建Nexus私服 1).下载并且解压      下载  nexus-2.11.2-03-bundle.zip      unzip nexus-2.11.2-03-bundle.z ...

  6. 搭建nexus私服,无法下载相关jar包,报错Repository proxy-mode is BLOCKED_AUTO

    在搭建nexus私服的时候,之前没直接用来下载maven的相关插件jar包,一直可以使用, 结果今天要编译hadoop的时候,在linux上新用maven就报错了,无法下载maven的相关插件(如下) ...

  7. 搭建nexus私服(maven)

    这里提供nexus的直接下载页面的链接: https://www.sonatype.com/download-oss-sonatype maven获取依赖jar包是从中央仓库获取,但很莫名的出现jar ...

  8. Linux搭建Nexus仓库+高可用方案

    Linux搭建nexus仓库 1.安装jdk 1.1 获取安装包,解压到指定目录: tar xf jdk.tar.gz -C /opt/export 1.2 配置环境变量: # vim /etc/pr ...

  9. 搭建nexus私服

    一.安装 1.从网上下载nexus软件https://www.sonatype.com/download-oss-sonatype  下载Nexus Repository Manager OSS软件包 ...

随机推荐

  1. 数据库左右连接on后的限制条件问题

    测试环境: MySQL 5.7.19 HeidiSQL 9.3 数据库界面连接工具(挺好用的) 碰到的问题是: Select * from t1 left outer join t2 on t1.id ...

  2. git各种撤销提交

      Git的几种状态 未修改 工作区 已修改 ↓ 工作区 已暂存 ↓ 暂存区 已提交 ↓ 本地仓库 已推送 ↓ 远程仓库 已修改 未暂存 已经修改了文件,还未进行git add 恢复方法 使用一下任意 ...

  3. 自学Python1.7-python变量以及类型

    自学Python之路 自学Python1.7-python 变量以及类型 1 变量是什么 变量是容器 2 变量的作用 存储数据到内存 3 为什么要用变量 存储数据方便后面引用 4 变量定义的规范 变量 ...

  4. 【BZOJ1800】[AHOI2009]飞行棋(暴力)

    [BZOJ1800][AHOI2009]飞行棋(暴力) 题面 BZOJ 洛谷 题解 预处理一下前缀和就可以\(O(1)\)计算两点间的距离了,直接\(O(n^4)\)暴力枚举即可. #include& ...

  5. 【原创】py3+requests+json+xlwt,爬取拉勾招聘信息

    在拉勾搜索职位时,通过谷歌F12抓取请求信息 发现请求是一个post请求,参数为: 返回的是json数据 有了上面的基础,我们就可以构造请求了 然后对获取到的响应反序列化,这样就获取到了json格式的 ...

  6. mybatis返回部分字段为空的问题

    问题: 在数据库查询的时候可以正常返回值,在程序中只能返回一部分字段,其他字段为null. 错误原因: 将resultType改为resultMap https://www.cnblogs.com/i ...

  7. linux command ------ ls

    -rw-r--r-- [d]: content [-]: file [l]: link file [b]: interface device for storage in a device file ...

  8. nginx: [warn] duplicate MIME type "text/html"错误

    检查配置文件时提示:nginx: [warn] duplicate MIME type "text/html" in /home/web/nginx/inc/gzip.conf:9 ...

  9. js的this到底是什么意思

    首先确定一点,this在声明时确定不了,在执行时才知道指向的谁!!! call() , apply(),bind()  方法的用法 比如下面一个例子: function fn(name,age){ a ...

  10. DBA记录-数据库管理员需要掌握的内容

    1.Linux 2.ORACLE/MySQL/SQLSERVER 3.NOSQL 4.环境部署.用户及权限管理.表空间.表.视图.索引.过程.触发器.分区.函数.查询.性能调优.迁移备份.集群.日志分 ...