在ubuntu上搭建nexus私有仓库(指定版本以及jdk!)

news2024/12/31 7:02:14

前言

本来以为搭建一个nexus随随便便就好了,但是遇到了最新版本根本没办法在jdk17下面正常运行—起码我调了一下不知道怎么运行,我才知道。。。不升级版本其实是很有道理的。
这一篇是最新版本的尝试:
在ubuntu上搭建nexus私有仓库[失败草稿]
下面一篇文章让我醍醐灌顶:
解决Nexus 3.XX Jdk版本问题(亲测有效)

新的JDK不行,那我用旧的还不行吗?

版本指定:

openjdk-1.8
maven-3.6.2 (注意,maven的版本也不是越新越好的,新版本的不支持 http-- 我们搭建的nexus十有八九是没有https的。)

过程

安装jdk1.8:

apt-get install openjdk-8-jre

好了:
在这里插入图片描述

在官网下载 neuxs:

wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.67.1-01-unix.tar.gz

我本地下载速度有点慢,看来需要一些科技手段了。

下载完成后,请上传到服务器等待配置:
在这里插入图片描述

在服务器上面,解压缩:

tar -zxvf nexus-3.67.1-01-unix.tar.gz
ls 

在这里插入图片描述

------重命名nexus文件夹

mv nexus-3.67.1-01 /usr/local/nexus3
cd /usr/local
创建软连接
sudo ln -s nexus3 nexus
mkdir /usr/local/sonatype-work/

好了,先进行一部分配置:

vim bin/nexus.vmoptions
修改一下参数,防止占用内存过大。
如下图:

在这里插入图片描述
可以改小一点:
在这里插入图片描述

修改默认访问端口以及根目录:

vim etc/nexus-default.properties 

在这里插入图片描述

注意,默认端口8081很多人用的,使用前请检查一下是否已经占用了:

lsof -i:8081

给nexus分配账号:
ps:如果不分配账号那么是无法启动的,例如:
在这里插入图片描述

创建 nexus 用户
# sudo useradd nexus -M -s /sbin/nologin
注意,这条命令后续会出问题的,在我上一篇文章已经将坑都排出来了:
https://blog.csdn.net/cdnight/article/details/80673110
所以,正式的命令是新建普通的账号:
sudo useradd nexus -m -s /bin/bash
授权
chown -R nexus:nexus /usr/local/nexus
chown -R nexus:nexus /usr/local/sonatype-work/

打开 /usr/local/nexus/bin/nexus.rc 文件, 去掉 run_as_user 变量的注释
sudo vim /usr/local/nexus/bin/nexus.rc
run_as_user="nexus"


好了,测试一下能否正常运行:

/usr/local/nexus/bin/nexus run

结果:
在这里插入图片描述

这怕是jdk版本的问题了。。。
怎么做都不行,下面参考一下一位兄弟的文章:
解决Nexus 3.XX Jdk版本问题(亲测有效)

所以,nexus的新版本必须使用jdk1.8,刚刚下载的openjdk1.8就是在这里用的

在nexus脚本上面覆盖jdk位置:
在这里插入图片描述

就是:

-- 添加这一行上去。
INSTALL4J_JAVA_HOME_OVERRIDE="/usr/lib/jvm/java-1.8.0-openjdk-amd64"

测试一下能否正常运行:

bin/nexus run

有:
在这里插入图片描述

无法启动成功,gc的值比我分配给它的要多了。。怎么这东西这么吃内存的的???

改改参数:

在这里插入图片描述
变更为512m,然后:
在这里插入图片描述

在这里插入图片描述

启动成功。

好了,给nexus添加一下系统服务,方便开机启动。

/lib/systemd/system 创建 nexus.service
内容:

[Unit]
Description=Nexus3服务
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nexus/bin/nexus start
## ExecReload=/usr/local/@projectName@/service.sh restart
ExecStop=/usr/local/nexus/bin/nexus stop
PrivateTmp=True
[Install]
WantedBy=multiVersions-user.target

ps:如果你有域名的话,也可以用域名+nginx 来导向nexus。

nexus3中央仓库改为阿里云

参考:这里写链接内容
找到中央仓库

这里写图片描述

然后修改成:
这里写图片描述

http://maven.aliyun.com/nexus/content/groups/public/

idea使用私服maven及对应配置

参考:
这里写链接内容

首先,新建一个maven项目—自己新建吧。

然后,
这里写图片描述

这里写图片描述

勘误-多仓库配置

下面说说经常出现的问题:

[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Could not find artifact org.apache.maven.plugins:maven-clean-plugin:jar:2.5 in life.cnart.releases (http://nexus地址/repository/maven-releases/) -> [Help 1]

而settings.xml配置了多个mirror:
在这里插入图片描述
其他同仁也碰到问题了:
Maven配置单仓库与多仓库(Nexus)

大意如下:

虽然mirrors可以配置多个子节点,但是它只会使用其中的一个节点,
即**默认情况下配置多个mirror的情况下,只有第一个生效,**只有当前一个mirror
无法连接的时候,才会去找后一个;
而我们想要的效果是:当a.jar在第一个mirror中不存在的时候,maven会去第二个mirror中查询下载,但是maven不会这样做!
正确的操作是在profiles节点下配置多个profile,而且配置之后要激活。

settings.xml参考内容如下:

<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">
                      <profiles>
    <profile>
      <id>repo-nexus</id> 
      <repositories>
        <repository>
          <id>repo-nexus</id> 
          <url>http://192.168.50.100:13081/repository/maven-releases/</url> 
          <releases>
            <enabled>true</enabled>
          </releases> 
          <snapshots>
            <enabled>true</enabled> 
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>repo-aliyun</id> 
      <repositories>
        <repository>
          <id>repo-aliyun</id> 
        <url>https://maven.aliyun.com/repository/public</url>
          <releases>
            <enabled>true</enabled>
          </releases> 
          <snapshots>
            <enabled>true</enabled> 
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile> 
    <profile>
      <id>maven-central</id> 
      <repositories>
        <repository>
          <id>maven-central</id> 
          <url>http://central.maven.org/maven2/</url> 
          <releases>
            <enabled>true</enabled>
          </releases> 
          <snapshots>
            <enabled>true</enabled> 
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
<profiles>

<servers>
<server>
        <id>repo-nexus</id>
        <username>admin</username>
        <password>nexus的密码</password>
</server>
</servers>
<activeProfiles>
        <activeProfile>repo-nexus</activeProfile>
        <activeProfile>repo-aliyun</activeProfile>
                <activeProfile>maven-central</activeProfile>
</activeProfiles>
</settings>

pom.xml配置

第一,指定多仓库,例如:

 <repositories>
      
        <repository>
            <id>repo-nexus</id>
            <name>内部仓库</name>
            <url>http://192.168.50.244:8081/repository/maven-releases/</url>
        </repository>
        <repository>
            <id>repo-aliyun</id>
            <name>阿里云公共仓库</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
        <repository>
            <id>jcenter</id>
            <name>JCenter Repository</name>
            <url>https://jcenter.bintray.com/</url>
        </repository>
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo1.maven.org/maven2</url>
        </repository>
    </repositories>

第二,配置 distribute 分发nexus服务:

    <distributionManagement>
       
        <repository>
            <id>repo-nexus</id>
            <name>内部仓库</name>
            <url>http://192.168.50.244:8081/repository/maven-releases/</url>
        </repository>
    </distributionManagement>

第三,记得在maven的settings.xml添加nexus凭证:

    <servers>
        <server>
            <id>repo-nexus</id>
            <username>admin</username>
            <password>密码</password>
        </server>
    </servers>
这一段是错误的(存档用) begin

看到本机的maven 配置文件,
这里写图片描述

打开来,然后:
这里写图片描述
添加我们的maven私服及servers—用来发布类库的。

格式如下:

<?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>
	<!--内部maven-->
	    <mirror>  
          <id>central</id>  
          <mirrorOf>*</mirrorOf>  
          <name>Central Repository</name>  
          <url>http://你仓库的地址/repository/maven-public/</url>  
      </mirror>  
        <!-- 阿里云仓库 -->
        <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>

        <!-- 中央仓库1 -->
        <mirror>
            <id>repo1</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo1.maven.org/maven2/</url>
        </mirror>

        <!-- 中央仓库2 -->
        <mirror>
            <id>repo2</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo2.maven.org/maven2/</url>
        </mirror>
    </mirrors>
	<servers>     
     <server>  
         <id>nexus-releases</id>  
         <username>admin</username>  
         <password>你的密码</password>  
     </server>  
     <server>  
         <id>nexus-snapshots</id>  
         <username>admin</username>  
         <password>你的密码</password>  
     </server>    
 </servers>  
</settings>
这一段是错误的(存档用) end

发布快照及正式版本

maven(15),快照与发布,RELEASE与SNAPSHOT

在pom.xml文件最后添加distributionManagement发布管理节点:

这里写图片描述

例如:

    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>Nexus Release Repository</name>
            <url>http://你的maven地址/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://你的maven地址/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

注意一下

    <groupId>net.funfunle</groupId>
    <artifactId>baselib</artifactId>
    <!--<version>1.0-SNAPSHOT</version>-->
    <version>1.0.1-RELEASE</version>

groupid这些,

    <groupId>net.funfunle</groupId>
    <artifactId>baselib</artifactId>
    <!--<version>1.0-SNAPSHOT</version>-->
    <version>1.0.1-RELEASE</version>

决定发布的是正式版本release还是快照snapshot的是

    <!--<version>1.0-SNAPSHOT</version>-->
    <version>1.0.1-RELEASE</version>

版本号及发布类型,有一点也需要注意,snapshot快照允许重复发布更新同一个版本,而release是不允许的,release每次发布版本号都要加的。

发布方式:
这里写图片描述

在mavenproject点击发布deploy。

好了,发布的结果如下:
在这里插入图片描述
查看一下nexus3是不是有结果了:
在这里插入图片描述

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

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

相关文章

红米K40手机刷机详解

了解什么是卡刷、什么是线刷 卡刷&#xff0c;就是把系统包放到你手机的SD卡&#xff0c;这一步&#xff0c;不用手机解BL锁&#xff0c;不用root&#xff0c;直接小米助手下载就可以刷。线刷就是用数据线连接电脑&#xff0c;通过XiaoMiFlash直接刷到手机&#xff0c;这一步权…

精酿啤酒:酿造工艺中的数据监测与智能化决策

在啤酒酿造工艺中&#xff0c;数据监测与智能化决策是提高生产效率和产品质量的关键因素。Fendi Club啤酒深知这一点&#xff0c;因此在其酿造过程中广泛应用数据监测技术和智能化决策系统&#xff0c;以实现精细化管理和持续改进。 Fendi Club啤酒通过数据监测技术对生产过程中…

对抗攻击新手实战

实战核心思想&#xff1a; 训练x(输入&#xff09;&#xff0c;让第一次训练好的&#xff0c;正确的y去和我们想要误导机器去识别的类别的那个y做一个损失函数【loss torch.mean(y[:, 248])】&#xff0c;不同的是&#xff0c;我们其实希望是一个梯度上升&#xff0c;给图片加…

redission原理笔记

加锁成功的线程&#xff0c;将UUID和线程id和key绑定&#xff0c; 加锁成功后&#xff0c;内部有一个看门狗机制&#xff0c;每隔十秒看下当前线程是否还持有锁&#xff0c;延长生存时间。 没有获取锁的就一直自旋等待&#xff0c;直到超时。 如果redis是主从同步的&#xff0…

呆马科技——智慧应急执法监管平台

在当今社会&#xff0c;安全生产的重要性日益凸显。对于各级政府和企事业单位&#xff0c;当务之急是如何高效地对突发事件进行执法管理。平台应运而生&#xff0c;旨在通过信息化、智能化技术&#xff0c;提升安全管理的效率与准确性。 一、平台特点 整合各类平台的信息资源&…

B+tree - B+树深度解析+C语言实现+opencv绘图助解

Btree - B树深度解析C语言实现opencv绘图助解 1. 概述2. Btree介绍3. Btree算法实现3.1 插入分裂 3.2 删除向右借位&#xff08;左旋&#xff09;向左借位&#xff08;右旋&#xff09;合并 3.3 查询和遍历3.3.1 查询3.3.2 遍历 3.4 优化优化1(匀key)优化2(升级key)优化3(拓展兄…

VC2022 + protobuf

google这是有私心啊&#xff0c;protobuf从某个版本开始&#xff0c;依赖了一个google自己推出的大型组件集&#xff0c;Abseil&#xff0c;有点类似于Boost了&#xff0c;业内用的人&#xff0c;从个人狭窄的圈子来说&#xff0c;应该是不多的&#xff0c;据说google的众贤用的…

远程连接docker,实现本地发布版本到服务器

最近在学jenkins的时候&#xff0c;发现涉及到了docker的远程发布调用。后续应该还要自己搭建一个docker的本地仓库。 简单描述一下具体是如何实现的&#xff1a; 1、将docker的服务器开启2375端口&#xff08;注意&#xff0c;这里的开启是将端口直接暴露出去&#xff0c;不用…

适用于芯片行业的开发及管理工具:版本控制、持续集成、代码分析及项目管理工具介绍

3月28日-29日&#xff0c;2024国际集成电路展览会暨研讨会&#xff08;IIC Shanghai&#xff09;在上海成功举行。此次盛会汇聚了集成电路产业的众多领军企业&#xff0c;共同探寻和把握集成电路产业的发展脉络。 龙智携芯片研发及管理解决方案亮相展会&#xff0c;展示如何通…

竞品分析:密雪冰城

​蜜雪冰城&#xff0c;是张红超于1997年在郑州成立的冰淇淋与茶饮的品牌。主要从事现制饮品、现制冰淇淋及其核心食材的研发、生产、销售以及品牌运营管理。 2022年营收超60亿元&#xff0c;海外门店接近3000家&#xff0c;全球门店总计突破25000家。 Part.1定位 当时不少奶…

Node.JS安装及配置教程(Windows)【安装】

文章目录 一、 Node.JS 下载1. 官网下载&#xff08;1&#xff09;国内地址&#xff08;2&#xff09;国外地址 2. 其它渠道 二、 Node.JS 安装三、 Node.JS验证四、 Node.JS 配置&#xff08;可选&#xff09;1. 配置全局模块安装路径方法一方法二2. 配置国内镜像 五、 yarn 安…

黑盒优化系列(一):自动化提示词优化【一、绪论】

大语言模型的提示词 随着ChatGPT等大语言模型的问世&#xff0c;我们获取知识的方式从单一的搜索引擎如Google转变为类似ChatGPT这种通过 Q & A 方式提供的方法。 我们尝试对比一下不同提示词&#xff0c;对应的模型输出 ChatGPT无提示词 API&#xff1a; ChatGPT 3.5 …

深入理解Python协程:从基础到实战

title: 深入理解Python协程&#xff1a;从基础到实战 date: 2024/4/27 16:48:43 updated: 2024/4/27 16:48:43 categories: 后端开发 tags: 协程异步IO并发编程Pythonaiohttpasyncio网络爬虫 第1章&#xff1a;协程基础 1.1 协程概念介绍 协程&#xff08;Coroutines&…

以生命健康为中心的物联网旅居养老运营平台

随着科技的飞速发展和人口老龄化的日益加剧&#xff0c;养老问题逐渐成为社会关注的焦点。传统的养老模式已经难以满足现代老年人的多元化需求&#xff0c;因此&#xff0c;构建一个以生命健康为中心的物联网旅居养老运营平台显得尤为重要。 以生命健康为中心的物联网旅居养老运…

敷尔佳2023年报前瞻:“医美面膜第一股”的护城河及2024展望

查理芒格曾说&#xff1a;“要去鱼多的地方打渔”。历数长线牛股辈出的领域&#xff0c;消费行业无疑是大赢家。此中&#xff0c;美业又是消费行业最好的细分赛道之一。 4月26日&#xff0c;A股“医美面膜第一股”–敷尔佳(SZ:301371)将发布2023年财报&#xff0c;按惯例对本季…

2024最新智慧医疗智慧医院大数据展示,医院数据采集概况、医院指标分析、医院就诊趋势分析等。源代码免费下载。

系列文章目录 【复制就能用1】2分钟玩转轮播图,unslider的详细用法 【复制就能用2】css实现转动的大风车&#xff0c;效果很不错。 【复制就能用3】2分钟自己写小游戏&#xff1a;剪刀石头布小游戏、扫雷游戏、五子棋小游戏 【复制就能用4】2024最新智慧医疗智慧医院大数据…

2024年Q1季度干衣机家电线上市场数据分析

春季阴雨绵绵&#xff0c;空气湿度增加&#xff0c;为晾晒衣物带来不便。与此同时&#xff0c;新消费主义的崛起也促使消费者更加注重时间效率和生活品质&#xff0c;寻求能够快速、方便地处理衣物的解决方案。借此&#xff0c;干衣机的需求量有所上涨。 根据鲸参谋数据显示&a…

【HCIP学习】BGP基础

一、BGP产生背景 BGP&#xff08;Border Gateway Protocol&#xff0c;边界网关协议&#xff09;是一种用于自治系统间的动态路由协议&#xff0c;是一种外部网关协议。 自治系统AS&#xff1a;一组同一个管理机构进行管理&#xff0c;对外呈现统一选路策略的路由器的集合。 …

解锁大模型高效推理:将 LlamaIndex 与抽象链集成

在语言理解领域&#xff0c;对忠实推理的追求促使研究人员探索各种途径。 大型语言模型&#xff08;LLMs&#xff09;在解释和执行指令方面取得了显著进展&#xff0c;但在准确回忆和组合现实世界知识方面仍然面临挑战。 为了解决这个问题&#xff0c;将外部工具集成到LLMs的…

Linux网络—DNS域名解析服务

目录 一、BIND域名服务基础 1、DNS系统的作用及类型 DNS系统的作用 DNS系统类型 DNS域名解析工作原理&#xff1a; DNS域名解析查询方式&#xff1a; 2、BIND服务 二、使用BIND构建域名服务器 1、构建主、从域名服务器 1&#xff09;主服务器配置&#xff1a; 2&…