• DevOps之三:搭建Maven私服Nexus


    安装环境
      Red Hat Enterprise Linux Server release 7.3 (Maipo)
      jdk1.7.0_80
      apache-tomcat-7.0.90
      mysql-5.7.23  
      apache-maven-3.5.4-bin.tar.gz(http://maven.apache.org/download.cgi)
      nexus-3.14.0-04-unix.tar.gz(https://www.sonatype.com/download-oss-sonatype)

    一、Maven是什么?
    Maven是优秀的构建工具,依赖管理工具,项目信息管理工具。

    二、nexus
    Nexus仓库管理工具,是一种远程仓库,私服的一种。

    三、Maven与Nexus
    Maven的依赖管理功能,通过在Pom中指定坐标的形式将jar引入到项目中。那这个过程,要经历怎样一个流程呢?从哪里寻找jar?下载的jar放到哪里?
    这引出了仓库的概念,maven通过仓库来统一管理各种构件。Maven的仓库分为本地仓库和远程仓库。


    当Maven根据坐标寻找构件时,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。

    首先,Nexus是一种远程仓库,根据上段的介绍,我们已经知道远程仓库的作用。在远程仓库中,默认的是中央仓库,中央仓库是Maven核心自带的远程仓库。那就使用中央仓库不就得了吗,为什么我们要安装Nexus呢?

    我们从项目实际开发来看:
    1.一些无法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其他依赖项目使用。
    2. 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,由于私服已经缓存了大量构件,整个项目还是可以正常使用的。同时,也降低了中央仓库的负荷。

    四、安装
    1.Maven安装

    #解压
    [root@PCS103 local]# tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
    #配置环境变量
    [root@PCS103 local]# vim /etc/profile
    export MAVEN_HOME=/usr/local/apache-maven-3.5.4
    export PATH=$JAVA_HOME/bin:$SVN_HOME/bin:$MAVEN_HOME/bin:$PATH
    [root@PCS103 local]# source /etc/profile
    #验证
    [root@PCS103 local]# mvn -v
    Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
    Maven home: /usr/local/apache-maven-3.5.4
    Java version: 1.7.0_80, vendor: Oracle Corporation, runtime: /usr/local/jdk1.7.0_80/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"

    2.Nexus安装
    注意:Nexus3.x最低JVM1.8,这里安装Nexus2.x

    #解压 
    [root@PCS103 src]# tar -zxvf nexus-2.11.1-01-bundle.tar.gz -C /usr/local
    #解压之后有两个文件夹 nexus-2.11.1-01是nexus的核心文件,sonatype-work是maven下载jar存放地址。
    
    #配置nexus-2.11.1-01(容器使用jetty)
    命令:vim /usr/local/nexus-2.11.1-01/conf/nexus.properties
    配置如下(无需修改) 默认端口8081:
    # Jetty section
    application-port=8081
    application-host=0.0.0.0
    nexus-webapp=${bundleBasedir}/nexus
    nexus-webapp-context-path=/nexus
    # Nexus section
    nexus-work=${bundleBasedir}/../sonatype-work/nexus
    runtime=${bundleBasedir}/nexus/WEB-INF
    #如果使用root用户运行 需要修改
    编辑命令:vim /usr/local/nexus-2.11.1-01/bin/nexus
    修改内容:RUN_AS_USER=root
    
    #启动
    [root@PCS103 bin]# /usr/local/nexus-2.11.1-01/bin/nexus start
    ****************************************
    WARNING - NOT RECOMMENDED TO RUN AS ROOT
    ****************************************
    Starting Nexus OSS...
    Started Nexus OSS.
    
    #验证
    [root@PCS103 bin]# jps
    1228 JswLauncher

    #访问网址:http://192.168.123.103:8081/nexus 默认用户和密码:admin/admin123

    接下来我们可以设置nexus开机启动配置:
    有俩种方案:第一种是把nexus做成服务,第二种是在/etc/rc.d/rc.local添加执行命令
    第一种:把nexus做成服务
    1、进入/etc/init.d目录命令:cd /etc/init.d
    2、拷贝nexus命令:cp /usr/local/nexus/nexus-2.11.1-01/bin/nexus ./nexus
    3、赋权命令:chmod 755 /etc/init.d/nexus
    4、添加服务命令:chkconfig --add nexus
    5、设置开机启动命令:chkconfig --levels 345 nexus on
    6、然后我们进行编辑/etc/init.d下的nexu文件命令:vim /etc/init.d/nexus
    修改如下内容:
    RUN_AS_USER=root
    NEXUS_HOME="/usr/local/nexus/nexus-2.11.1-01"
    PIDDIR="${NEXUS_HOME}"
    7、进行编辑nexus安装目录下的wrapper.conf文件命令:
    vim /usr/local/nexus/nexus-2.11.1-01/bin/jsw/conf/wrapper.conf
    注意修改jdk文件路径:wrapper.java.command=/usr/local/jdk1.7/bin/java
    8、最后我们执行:service nexus start (restart、stop)
    9、Reboot重启服务,开机时我们发现nexus服务自动已启动!
    第二种:在/etc/rc.d/rc.local添加执行命令
    编辑命令:vim /etc/rc.d/rc.local
    添加内容:/usr/local/nexus/nexus-2.11.1-01/bin/nexus start
    编辑命令:vim /usr/local/nexus/nexus-2.11.1-01/bin/jsw/conf/wrapper.conf
    注意修改jdk文件路径:wrapper.java.command=/usr/local/jdk1.7/bin/java
    Reboot一下Linux,最后我们访问nexus服务:http://192.168.123.103:8081/nexus

    参考:
    https://blog.csdn.net/liusong0605/article/details/25654811
    https://www.cnblogs.com/dingyingsi/p/3687077.html
    https://help.sonatype.com/docs
    https://blog.csdn.net/smartbetter/article/details/55116889

    企业级开源仓库nexus实战应用–nexus的安装

    使用nexus3搭建docker的私有仓库
    使用nexus 存储 docker镜像,作为私有的镜像仓库

    Sonatype Nexus Repository Manager清除无用的docker镜像

    CentOS7.x上nexus docker镜像仓库镜像的查询和删除

  • 相关阅读:
    10、ERP设计之系统基础管理(BS)- 平台化设计
    SendMessage发送自定义消息及消息响应
    【iOS开发】 常遇到的Crash和Bug处理
    UVA 11100 The Trip, 2007 贪心(输出比较奇葩)
    Android_多媒体_SoundPool声音池使用
    Django之逆向解析url
    Oracle中四种循环(GOTO、For、While、Loop)
    Android监控程序本身被卸载方法汇总
    Cocos2dx项目启程一 之 封装属于我的精灵类
    Android-->发送短信页面实现(短信发送以及群发和从电话本中选择联系人)-----------》2
  • 原文地址:https://www.cnblogs.com/cac2020/p/9796168.html
Copyright © 2020-2023  润新知