zoukankan      html  css  js  c++  java
  • 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镜像仓库镜像的查询和删除

  • 相关阅读:
    Java 基础
    Java 数据类型
    Spring 拦截器实现事物
    SSH 配置日记
    Hibernate 知识提高
    Jsp、Servlet
    leetcode 97. Interleaving String
    leetcode 750. Number Of Corner Rectangles
    leetcode 748. Shortest Completing Word
    leetcode 746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/cac2020/p/9796168.html
Copyright © 2011-2022 走看看