• BiaoDoo首页
  • 自主产品
       自主产品
       测试工具
       源码安全/质量测试云平台
       测试用例开发工具
       软件测试态势分析平台
       开源软件安全审计系统
       软件造价
       软件造价概算平台
       运维产品
       应用源码监测系统
       教学实训平台
       软件测试实验室平台
  • Micro Focus产品代理
       Micro Focus产品代理
       Fortify SCA
       Webinspect
       LoadRunner
       ALM/QualityCenter
       MF UFT
       MF Mobile Center
       Diagnostics
  • 其它产品
       其它产品
       AppScan(IBM)
       Klockwork Insight
       Coverity静态分析
       Black Duck--黑鸭软件成分分析
  • 安全产品
       安全产品
       U盾
  • 工程咨询
       工程咨询
       IT规划咨询
       软件造价概算
       软件架构评估
       信息工程监理
       测试体系咨询
  • 软件测试
       软件测试
       工程验收测试
       压力测试与优化
       产品认证测试
       专题测试
       医疗设备软件测试
       摇号软件测试
       科研项目验收
       软件故障诊断
       委托客制测试
       软件登记测试
       科技成果鉴定
       国产软件适配测试
  • 安全测试
       安全测试
       软件安全测试
       源码安全测试
       等级保护测评
       渗透测试
       风险评估
  • 企业服务
       企业服务
       系统保障与救援
       大数据服务
       ICP证书办理
       软件著作权
       首版次申报
  • 教育培训
       教育培训
       ISTQB认证
       软件产品检验员
       软件就业培训
       校企合作
       信息安全培训
  • 认证中心
       认证中心
       软件企业认证
       质量安全体系认证
       高新技术企业认证
       企业能力认证
       节能与绿色评价服务
       其它系统认证
  • 资讯中心
       资讯中心
       最新资讯
       政策法规
       技术方案
  • 开源测试 · 青云渡
       开源测试 · 青云渡
       技术文摘
       BiaoDoo开源
       常用工具
  • 全国网络
       全国网络
  • BiaoDoo
       BiaoDoo
       软件管控领导者
       合作伙伴
       FAQ
       加入我们
       招聘信息
       合作加盟
       联系我们
  • 测试外包
       测试外包
       离岸测试外包
       测试人才外协
  • 使用Nexus搭建Maven私服教程的方法步骤

    一、基本介绍(Nexus(maven私服))

    1,如果没有搭建私服会有什么问题?

    • 如果没有私服,我们所需的所有构件都需要通过 Maven 的中央仓库或者第三方的 Maven 仓库下载到本地,而一个团队中的所有人都重复的从 Maven 仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。

    • 另外,很多情况下项目的开发都是在内网进行的,可能根本连接不了 Maven 的中央仓库和第三方的 Maven 仓库。

    • 我们开发的公共构件如果需要提供给其它项目使用,也需要搭建私服。

    2,搭建私服的优点

    Maven 私服的概念就是在本地架设一个 Maven 仓库服务器,在代理远程仓库的同时维护本地仓库。当我们需要下载一些构件(artifact)时,如果本地仓库没有,再去私服下载,私服没有,再去中央仓库下载。这样做会有如下一些优点:

    • 减少网络带宽流量

    • 加速 Maven 构建

    • 部署第三方构件

    • 提高稳定性、增强控制

    • 降低中央仓库的负载

    3,Nexus 介绍

    Nexus 是一个专门的 Maven 仓库管理软件,它不仅能搭建 Maven 私服,还具备如下一些优点使其日趋成为最流行的 Maven 仓库管理器:

    • 提供了强大的仓库管理功能,构件搜索功能

    • 它基于 REST,友好的 UI 是一个 ext.js 的 REST 客户端

    • 它占用较少的内存

    • 基于简单文件系统而非数据库

    我的理解:平时我们用的是阿里的共用maven服务器,但是在公司时,我们需要用到公司自研的jar包,这些jar包是私有的,所以在阿里的共用maven服务器中找不到,虽然我们也可以那个u盘来拷贝公司的私有jar包,但公司人这么多,一个个拷贝就太慢了,可以使用nexus搭建一个公司的私服,只需要连接公司的内网,配置好maven的settings.xml就可以在nexus中下载自己需要的jar包了

    二、Nexus 服务的安装(推荐第二种:使用docker方式安装)

    Nexus 既可以使用传统的二进制包进行安装,也可以使用 Docker 容器的方式进行安装运行。下面分别介绍这两种方法。

    1,使用二进制发行包安装

    (1)首先确保系统 JDK 环境,具体安装步骤可以参考我之前写的文章:

    Java - CentOS下JDK的安装教程 

    (2)接着我们访问 Nexus 官网(点击访问),点击“GET REPOSITORY OSS”按钮打开下载页面:

    (3)根据环境选择下载相应的版本,比如我这里下载 Linux 版本的安装包。

    (4)将下载下来的压缩包上传到服务器(比如 /usr/local 目录下),然后进行解压:

    1
    tar -zxf nexus-3.21.2-03-unix.tar.gz

    5)解压后会得到两个文件夹:nexus-3.21.2-03nexus 服务目录)、sonatype-work(私有库目录)

    (6)进入 nexus-3.21.2-03 文件夹,其中 etc/nexus-default.properties 文件配置端口(默认为 8081)和 work 目录信息,我们可以按需修改。

    1
    cd nexus-3.21.2-03``cat etc/nexus-``default``.properties

    (7)然后执行如下命令开放 8081 端口:

    1
    firewall-cmd --permanent --add-port=``8081``/tcp``firewall-cmd --reload

    (8)最后执行如下命令启动服务即可:

    1
    cd bin``./nexus start

    2,使用 Docker 镜像进行安装(推荐)

    (1)首先执行如下命令下载 Nexus3 镜像:

    1
    docker pull sonatype/nexus3

    (2)接着执行如下命令,创建宿主机挂载目录:

    1
    mkdir` `–vp /usr/local/nexus-data

    (3)最后执行如下命令运行 Nexus3 容器即可:

    1
    docker run -d --name nexus3 -p 8081:8081 -v /usr/local/nexus-data:/``var``/nexus-data sonatype/nexus3

    (4)同样不要忘记执行如下命令开放 8081 端口:

    1
    firewall-cmd --permanent --add-port=``8081``/tcp``firewall-cmd --reload

    三、Nexus 服务的配置

    (1)Nexus 服务启动以后,我们使用浏览器访问 http://IP:8081/,点击右上角登录按钮:

    (2)首次登录会提示密码保存在 /usr/local/sonatype-work/nexus3/admin.password 文件中,我们查看服务器上这个文件内容,然后作为密码登录:

    (3)登录后会让我们设置新的密码(这里我设置为 123):

    (4)登录后的界面如下:

    (1)默认仓库说明:

    maven-centralmaven 中央库,默认从 https://repo1.maven.org/maven2/ 拉取 jarmaven-releases:私库发行版 jar,初次安装请将 Deployment policy 设置为 Allow redeploymaven-snapshots:私库快照(调试版本)jarmaven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地 maven 基础配置 settings.xml 或项目 pom.xml 中使用

    (2)仓库类型说明:

    group:这是一个仓库聚合的概念,用户仓库地址选择 Group 的地址,即可访问 Group 中配置的,用于方便开发人员自己设定的仓库。maven-public 就是一个 Group 类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x 默认为 ReleasesSnapshotsCentral,当然你也可以自己设置。hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的 jar 文件snapshots:本地项目的快照仓库releases: 本地项目发布的正式版本proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的 Configuration 页签下 Remote Storage 属性的值即被代理的远程仓库的路径),如可配置阿里云 maven 仓库central:中央仓库

    (5)接下来我们增加一个代理仓库,使用的是阿里云公共仓库。首先点击“Create repository”按钮开始创建一个仓库:

    (6)类型选择 maven2proxy):

    (7)配置阿里云地址 http://maven.aliyun.com/nexus/content/groups/public/name 可以随意填(这里我写 aliyun-proxy),然后点击最下方按钮创建:

    (8)阿里云代理仓库创建完毕后,我们编辑 maven-public,将其添加到放入 group 中,并调整优先级,然后保存:

    (9)点击 maven-public 条目的 copy 按钮即可拷贝私服地址:

    附一:Maven 配置使用私服(下载依赖)

    1,基本说明

    (1)Maven 配置私服下载有两种方式:

    setting.xml:该文件配置的是全局模式pom.xml:该文件的配置的是项目独享模式

    注意:若 pom.xml 和 setting.xml 同时配置了,以 pom.xml 为准。

    (2)当我们在 maven 使用 maven-public 仓库地址的时候,会按照如下顺序访问:本地仓库 --> 私服 maven-releases --> 私服 maven-snapshots --> 远程阿里云 maven 仓库 --> 远程中央仓库

    2,通过 setting.xml 文件配置

    (1)setting.xml 文件配置样例如下。配置后不需要再配置 pom.xml 文件,即可通过私服下载 jar 依赖包。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <mirrors>
        <mirror>
            <!--该镜像的唯一标识符。id用来区分不同的mirror元素。 -->
            <id>maven-public</id>
            <!--镜像名称 -->
            <name>maven-public</name>
            <!--*指的是访问任何仓库都使用我们的私服-->
            <mirrorOf>*</mirrorOf>
            <!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。 -->
            <url>http://192.168.60.133:8081/repository/maven-public/</url>    
        </mirror>
    </mirrors>

    (2)如果我们并没有搭建私服,属于个人开发,那么也可以直接配置使用阿里 云maven 仓库:

    1
    2
    3
    4
    5
    6
    <mirror>
      <id>nexus-aliyun</id>
      <name>Nexus aliyun</name>
      <mirrorOf>*</mirrorOf>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

    3,通过 pom.xml 文件配置

    (1)pom.xml 文件配置样例如下。如果我们配置了 pom.xml,则以 pom.xml 为准。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <repositories>
        <repository>
            <id>maven-nexus</id>
            <name>maven-nexus</name>
            <url>http://192.168.60.133:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    (2)如果没有私服,我们同样也可以配置阿里云 maven 仓库:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <repositories>
       <repository>
          <id>maven-aliyun</id>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <releases>
             <enabled>true</enabled>
          </releases>
          <snapshots>
             <enabled>true</enabled>
             <updatePolicy>always</updatePolicy>
             <checksumPolicy>fail</checksumPolicy>
          </snapshots>
       </repository>
    </repositories>

    附二:Maven 配置使用私服(下载插件)

    下面是一个使用 pom.xml 配置样例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <pluginRepositories>
        <pluginRepository>
            <id>maven-nexus</id>
            <name>maven-nexus</name>
            <url>http://10.172.0.201:8081/nexus/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    附三:Maven 配置使用私服(发布依赖)

    (1)首先修改 setting.xml 文件,指定 releases 和 snapshots server 的用户名和密码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <servers>
        <server>
            <id>releases</id>
            <username>admin</username>
            <password>123</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>admin</username>
            <password>123</password>
        </server>
    </servers>

    (2)接着在项目的 pom.xml 文件中加入 distributionManagement 节点:

    注意repository 里的 id 需要和上一步里的 server id 名称保持一致。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>Releases</name>
            <url>http://192.168.60.133:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Snapshot</name>
            <url>http://192.168.60.133:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    (3)执行 mvn deploy 命令发布:

    (4)登录 Nexus,查看对应的仓库已经有相关的依赖包了。

    发布到的仓库说明:

    若项目版本号末尾带有 -SNAPSHOT,则会发布到 snapshots 快照版本仓库若项目版本号末尾带有 -RELEASES 或什么都不带,则会发布到 releases 正式版本仓库


    BiaoDoo·智慧测试 | 让软件更可靠

    本站声明:内容源自https://www.jb51.net/article/272833.htm()