晓夏

YoungCheung

Zhang Sir's technical way

Maven仓库-Nexus环境搭建及简单介绍

浏览量:1286

一、什么是neuxs

        Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。

•Neux MAVEN的私有仓库 

•如果没有nexus 项目的打包都需要通过公网下载 

•不利于包的管理和共用 •如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件

功能:

blob.png

neuxs流程

blob.png

部署工作流

blob.png

二、安装

下载地址: http://www.sonatype.com/download-oss-sonatype

这里我们提供自己的一个下载地址:http://download.zhsir.org/git_jenkns_maven_gitlab/nexus-2.13.0-01-bundle.tar.gz

@解压并启动

[root@linux-node2 data]# wget http://download.zhsir.org/git_jenkns_maven_gitlab/nexus-2.13.0-01-bundle.tar.gz
[root@linux-node2 data]# tar zxvf nexus-2.13.0-01-bundle.tar.gz 
[root@linux-node2 data]#cd nexus-2.13.0-01/bin 
[root@linux-node2 data]#export RUN_AS_USER=root 
[root@linux-node2 data]#./nexus start

这个时间很慢,大概需要一分钟,耐心等候

@访问

http://{ip}:8081/nexus/

默认用户名密码 admin admin123

三、Nexus中的仓库


  1.1  类型介绍

登陆Nexus,在左边菜单栏里选择Repositories,然后会出现右边的画面,右边上半部分是列出来的repository,黑体字是类型为group的repository。

    这里简单介绍下几种repository的类型:

    Ø  hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。

    Ø  proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。

    Ø  group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

blob.png

3.2  管理本地仓库

    我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:

  Releases:

     这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.

  Snapshots:

     这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.

  3rd Party:

    顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛,没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rdparty仓库。


3.3  在Nexus为自己的项目手动单独建库

    建库,Add-- >HostedRepository

blob.png

建权限

blob.png

建角色(指定权限)

blob.png


建用户(指定角色

blob.png

3.4Maven仓库组

     通过前面介绍可以了解到, 我们可以建立多个proxy代理仓库,hosted本地仓库, 如果没有仓库组的概念,我们如果需要引用这些仓库的是时候需要一一加入到我们的setting.xml里面去, 有了仓库的组的概念, 我们只需要做一次引用就可以了,把我们需要的仓库加入到仓库组即可。如下图:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>   
 <mirror>
            <id>baijia</id>
            <mirrorOf>*</mirrorOf>
            <url>http://192.168.56.12:8081/nexus/content/groups/public/</url>
        </mirror>
    </mirrors>
        <profiles>
	 <profile>
            <id>default</id>
            <repositories>
                <repository>
                    <id>public</id>
                    <url>http://192.168.56.12:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
</profiles>
    <activeProfiles>
        <activeProfile>default</activeProfile>
    </activeProfiles>
</settings>

 仓库组默认包含本地仓库Releases,snapshots, 3rd party和代理仓库MavenCentral. 你可以在Configuration配置页添加仓库到这个仓库组. 如果需要你还可以创建一个仓库组,在Repositories菜单处选add-->Repository Group即可

神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。