Linux部署Nexus通过Maven推送及拉取代码

news2024/11/16 0:42:07
😊 @ 作者: 一恍过去
💖 @ 主页: https://blog.csdn.net/zhuocailing3390
🎊 @ 社区: Java技术栈交流
🎉 @ 主题: Linux部署Nexus通过Maven推送及拉取代码
⏱️ @ 创作时间: 2023年1月13日

目录

  • 1、下载
  • 2、安装
  • 3、设置开机自启
  • 4、登录系统
  • 5、配置中央仓库
  • 6、用户管理
  • 7、创建仓库
  • 8、代码推送
  • 9、引入私有仓库包

1、下载

  • 搭建版本:3.45.0

  • 下载地址:https://help.sonatype.com/repomanager3/product-information/download

在这里插入图片描述

2、安装

  • 安装目录:/home/nexus

    # 创建安装目录
    mkdir /home/nexus
    

    将下载的nexus-3.45.0-01-unix.tar.gz上传到/home/nexus

  • 解压操作

    # 解压
    tar -zxvf nexus-3.45.0-01-unix.tar.gz
    
  • 配置nexus

neuxs的默认占用内存大小为2703m,可以根据实际情况进行适当的修改

# 修改nexus.vmoptions文件
vim /home/nexus/nexus-3.45.0-01/bin/nexus.vmoptions

# 原始内容如下:
-Xms2703m
-Xmx2703m
-XX:MaxDirectMemorySize=2703m
  • 配置端口

    neuxs的默认使用8081端口,如果存在冲突可以在nexus-default.properties中进行修改

    # 修改nexus-default.properties文件
    vim /home/nexus/nexus-3.45.0-01/etc/nexus-default.properties
    
    # 修改端口为9090,需要防火墙开通端口
    application-port=9090
    
  • 配置Root用户

    # 编辑nexus.rc文件
    vim /home/nexus/nexus-3.45.0-01/bin/nexus.rc
    
    # 内容如下,开通就是存在`#`号
    #run_as_user="root"
    
    ==============================================
    # 编辑nexus文件
    vim /home/nexus/nexus-3.45.0-01/bin/nexus
    
    # 将run_as_root=false改为run_as_root=true
    run_as_root=true
    
  • 配置jdk

    # 编辑nexus文件
    
      vim /home/nexus/nexus-3.45.0-01/bin/nexus
    
      # 内容如下
    
      INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/java/jdk1.8.0_131
    
  • 开始安装及运行

      # 进入bin目录
      /home/nexus/nexus-3.45.0-01/bin
      
      # 安装及后台运行
      ./nexus run
    
  • 测试访问

    测试地址:http://192.168.80.121:9090/
    在这里插入图片描述

3、设置开机自启

  • 创建自启服务文件

    # 创建自启服务文件
    vim /usr/lib/systemd/system/nexus.service
    
    # 内容
    [Unit] 
    Description=nexus service
    After=network.target
     
    [Service] 
    Type=forking 
    ExecStart=/home/nexus/nexus-3.45.0-01/bin/nexus start
    ExecReload=/home/nexus/nexus-3.45.0-01/bin/nexus restart
    ExecStop=/home/nexus/nexus-3.45.0-01/bin/nexus stop
    Restart=on-failure
     
    [Install]
    WantedBy=multi-user.target
    
  • 加入自启服务

    systemctl enable nexus.service
    
    systemctl daemon-reload
    
  • 启动&停止命令(执行启动命令后,需要1~2分钟)

    # 启动
    systemctl start nexus.service
    # 重启
    systemctl restart nexus.service
    # 停止
    systemctl stop nexus.service
    # 查看状态
    systemctl status nexus.service
    

4、登录系统

nexus的默认用户名为admin

默认密码位置在/home/nexus/sonatype-work/nexus3/admin.password中,使用时直接复制即可,密码为一个uuid

cat /home/nexus/sonatype-work/nexus3/admin.password

在首次登录系统后,会进行一次密码修改

5、配置中央仓库

仓库地址:https://mirrors.huaweicloud.com/repository/maven/
在这里插入图片描述

在这里插入图片描述

6、用户管理

1、添加角色
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、创建用户
在这里插入图片描述
在这里插入图片描述

7、创建仓库

1、创建maven2(hosted)类型仓库

创建仓库需要在登录后才能进行

点击Create repository,然后选择类型为 maven2(hosted)
在这里插入图片描述

在这里插入图片描述

2、设置仓库属性

Maven 仓库分为两种:Snapshot 快照仓库Release 发行仓库

Snapshot 快照仓库用于保存开发过程中的不稳定 SNAPSHOT 版本,Release 发行仓库则用来保存稳定的 RELEASE 版本。

仓库名称设置为 lhz-release(任意);

Version policy选择为Release

Deployment policy选择Allow redeploy,允许部署和更新私服上的组件。

3、添加到仓库组
在这里插入图片描述

在这里插入图片描述

8、代码推送

1、POM文件自动推送

在本地Mavensetting.xml文件中,在<servers>标签中添加Neuxs私服的配置,如下

<servers>
<!--nexus服务器-->
  <servers>  
    <server>
        <!--任意值-->
        <id>lhz-nexus</id>
        <!--私服的访问账户-->
        <username>admin</username>  
        <!--私服的访问密码-->
        <password>123321</password>  
    </server>
</servers>

在需要推送到Nexus仓库代码的POM.XML中,配置推送的仓库及地址

<!--dependencies下面-->
<distributionManagement>
    	<!--推送到release版本的仓库-->
        <repository>
            <!-- 需要和conf文件下pom文件server标签中id保持一致 -->
            <id>lhz-nexus</id>
            <name>nexus release</name>
            <!--推送的仓库地址-->
            <url>http://192.168.80.121:9090/repository/lhz-release/</url>
        </repository>
</distributionManagement>

执行推送:

# maven推送命令
mvn clean deploy

# 推送项目中的部分pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <groupId>com.lhz.utils</groupId>
    <artifactId>template-common-utils</artifactId>
    <packaging>jar</packaging>
    <version>2.0</version>
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
    </properties>


    <dependencies>
        <dependency>
            <groupId>eu.bitwalker</groupId>
            <artifactId>UserAgentUtils</artifactId>
            <version>1.21</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.22</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.15</version>
        </dependency>
     	......
     	......
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.8.1</version>
        </dependency>
    </dependencies>

    <!--dependencies下面-->
    <distributionManagement>
        <!--推送到release版本的仓库-->
        <repository>
            <!-- 需要和conf文件下pom文件server标签中id保持一致 -->
            <id>lhz-nexus</id>
            <name>nexus release</name>
            <url>http://192.168.80.121:9090/repository/lhz-release/</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

在这里插入图片描述

2、手动上传jar包到nexus
在这里插入图片描述

在这里插入图片描述

9、引入私有仓库包

配置如下:

<!--maven配置添加私服的镜像地址,settings.xml 文件中-->
<mirrors>
    <!--如果http不被允许的话,将屏蔽下面的`maven-default-http-blocker`配置-->
    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
    
    <!--添加私服镜像-->
    <mirror>
        <id>lhz-nexus</id>
		<!--任意值-->
        <name>nexus repository</name> 
        <mirrorOf>*</mirrorOf>  
        <url>http://192.168.80.121:9090/repository/maven-public/</url>  
    </mirror>
</mirrors>

<!--需要拉取jar包的项目中,pom.xml 文件中-->
    <repositories>
        <repository>
           <!--与mirror配置的一致-->
           <id>lhz-nexus</id>
            <name>Nexus Reposotory</name>
			<url>http://192.168.80.121:9090/repository/maven-public/</url>  
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

myBaits Expert Wheat Exome — 从多个小麦品种中富集超过250Mb的高可信度的外显子

myBaits Expert Wheat Exome 与国际小麦基因组测序联盟(IWGSC)合作开发&#xff0c;使用了IWGSC发布的中国春基因组和注释信息。靶向六倍体小麦中完整的高置信度且有基因注释的外显子区域,能够全面、统一、可靠地深入覆盖大干15 Gb的小麦基因组中超过250 Mb的CDS及其邻近区域。…

硅烷聚乙二醇活性酯;Silane-PEG-NHS;溶于大部分有机溶剂。仅供科研实验使用,不用于诊治

英文名称&#xff1a;Silane-PEG-NHS&#xff0c;Silane-PEG-SCM 中文名称&#xff1a;硅烷聚乙二醇活性酯 分子量&#xff1a;1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#xff0c;10k&#xff0c;20k。。。 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;…

数组常用方法总结 (5) :find / findIndex / filter

find 与前边讲过的 some 类似&#xff0c;用于检测数组的每一项是否符合限定条件。只要遇到一个符合条件的&#xff0c;就会停止循环。在循环中&#xff0c;如果是简单数组&#xff0c;数据不会被改变&#xff0c;如果是对象数组&#xff0c;数据会改变。如果停止了循环&#…

音频(七)——数字麦克风和模拟麦克风(DMIC/AMIC)

数字麦克风与模拟麦克风(DMIC/AMIC) 麦克风(mic)&#xff1a;是将声音信号转换为电信号的能量转换器件&#xff0c;也就是用来采集你说话的声音扬声器(speaker)&#xff1a;是一种把电信号转变为声信号的换能器件&#xff0c;就是把对方说话产生的电信号转换成声音播放出来。简…

比较C++在for循环中的i++和++i以及i++的O2优化的效率:++i真的比i++快吗

比较C在for循环中的i和i以及i的O2优化的效率&#xff1a;i真的比i快吗 前言 对i和i的争论褒贬不一&#xff0c;不知从何时起&#xff08;大概是学C的时候老师就是这么教的&#xff09;我的习惯是在for循环中使用i而不是i for (int i 0; i < n; i) // 典但是看到一些博客…

再说多线程(五)——死锁

在前面四节中&#xff0c;我们一直没有讨论多线程程序的一个负面问题——死锁&#xff0c;有了一定的基础&#xff0c;现在是时候研究一下死锁了。死锁一定是出现在多线程程序中&#xff0c;单线程是不可能造成死锁的&#xff0c;因为你不可能同时加两把锁。死锁有个简单的例子…

《软件工程》课程四个实验的实验报告(《可行性研究与项目计划》《需求分析》《系统设计》《系统实现》)

实验1《可行性研究与项目计划》 实验学时&#xff1a; 2 实验地点&#xff1a; 任意 实验日期&#xff1a; 12月15日 一、实验目的 了解&#xff1a;软件项目可行性研究及项目计划的基本原理与方法&#xff1b;掌握&#xff1a;Visio等工具进行可…

【尚硅谷】Java数据结构与算法笔记06 - 算法复杂度详解

文章目录一、算法的时间复杂度1.1 度量算法执行时间的两种方法1.1.1 事后统计1.1.2 事前估算1.2 时间频度1.2.1 基本介绍1.2.2 举例说明&#xff1a;基本案例1.2.3 举例说明&#xff1a;忽略常数项1.2.4 举例说明&#xff1a;忽略低次项1.2.5 举例说明&#xff1a;忽略系数1.3 …

WebServer传输大文件致客户端自动关闭

程序运行在云服务器上, Ubuntu 20.04LTS系统&#xff0c;用浏览器测试能正常打开页面&#xff0c;请求一般的html文本和几十kb的小图片无问题&#xff0c;接着放了一个1.63MB&#xff08; 1714387字节&#xff09;的网上找的图过去&#xff0c;客户端图没加载完就自动断连了&am…

如何搭建一个专业的企业知识库

当客户跟你达成合作关系后&#xff0c;需要持续的关系维护&#xff0c;在一定的销售点&#xff0c;定期和客户沟通&#xff0c;据调查&#xff0c;赢得一个新客户的成本可能是保留一个现有客户的5到25倍&#xff0c;作为营销策略&#xff0c;客户服务支持必须满足他们的期望。建…

Linux小黑板(7):再谈动静态

"我看到&#xff0c;久违的晴朗啊"一、什么是动静态库在本栏目前面的篇幅也提到过这个概念&#xff0c;因此本小节就小小地回顾一番。在linux下:静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。动态库(.so):程序在运行的时候才去链接动态库的代码&am…

【npm报错】解决invalid json response body at https://registry.npmjs.org

报错信息&#xff1a; npm ERR! code FETCH_ERROR npm ERR! errno FETCH_ERROR npm ERR! invalid json response body at https://registry.npmjs.org/riophae%2fvue-treeselect reason: Invalid response body while trying to fetch https://registry.npmjs.org/riophae%2f…

从粪便菌群移植到下一代有益菌:Anaerobutyricum soehngenii为例

谷禾健康 我们知道&#xff0c;肠道微生物群对人类健康和福祉很重要&#xff0c;调节宿主代谢&#xff0c;塑造免疫系统并防止病原体定植。 通过粪便微生物群移植&#xff08;FMT&#xff09;恢复平衡多样的微生物群&#xff0c;已成为研究疾病发病机制中微生物群因果关系的潜在…

Spring Cloud Gateway 之限流

文章目录一、常见的限流场景1.1 限流的对象1.2 限流的处理方式1.3 限流的架构二、常见的限流算法2.1 固定窗口算法&#xff08;Fixed Window&#xff09;2.2 滑动窗口算法&#xff08;Rolling Window 或 Sliding Window&#xff09;2.3 漏桶算法&#xff08;Leaky Bucket&#…

CSS3属性之text-overflow:ellipsis详解

1.text-overflow: 默认值:clip; 适用于:所有元素 clip:当前对象内文本溢出时不显示省略标记(…),而是将溢出部分裁剪。 ellipsis:当对象内文本一处时显示省略标记(…)。 当然这还是不够的&#xff0c;需要加点调料才能出现效果: 那就是配合 overflow:hidden white-space:…

高级树结构之红黑树初识

文章目录一 红黑树简介二 探究变色、旋转操作的时机三 总结一 红黑树简介 通过在插入几点时维护数的平衡&#xff0c;这样就不会出现极端情况&#xff0c;使得整棵树的查找效率急剧降低。但是这样造成系统开销过大&#xff0c;因为一旦平衡因子的绝对值超过一就失衡&#xff0…

iOS 界面尺寸居然跟实际机型不符!

0x00 前言 日常搬砖过程中&#xff0c;一条日志&#xff0c;让我对手里的 iPhone 6 Plus 产生了怀疑&#xff1f; 这是 6P&#xff0c;怎么尺寸变成 6 了呢&#xff1f; 0x01 对比 手机连上电脑&#xff0c;通过 Xcode 查看 Window 菜单&#xff1a;Devices and Simulators …

Insight Enterprises EDI 855 采购订单确认报文详解

本文着重讲述Insight EDI项目中Insight回复给采购商的X12 855报文&#xff08;采购订单确认&#xff09;。 在此前的文章如何读懂X12报文中&#xff0c;我们对X12报文的结构已经做了详细的介绍&#xff0c;本文将带大家深入了解X12 855采购订单确认报文。 下图为Insight X12 …

单绞机张力开环控制(绞臂行星差速机构)

PLC的开环和闭环张力控制算法,可以参看下面的文章链接: PLC张力控制(开环闭环算法分析)_plc张力控制程序_RXXW_Dor的博客-CSDN博客里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力控制相关应用和算法,关于绕线机的…

Java学习之final关键字

目录 一、基本介绍 二、使用final的四种情况 第一种 第二种 第三种 第四种 三、细节 第一点 第二点 第三点 第四点 第五点 第六点 第七点 第八点 第九点 四、练习 第一题 第二题 分析 一、基本介绍 final:最终的&#xff0c;最后的 final 可以修饰类…