【Linux学习笔记】Linux环境搭建Maven私服

2023-05-16

Linux环境搭建Maven私服

  • 一、概要说明
  • 二、搭建Nexus3.X(3.18)
    • 2.1、下载Nexus
    • 2.2、解压Nexus
    • 2.3、启动Nexus
      • 2.3.1、创建一个nis用户来启动nexus
      • 2.3.2、修改nexus3的运行用户为nis
      • 2.3.3、启动Nexus报错Cannot open file ../sonatype-work/nexus3/log/jvm.log due to Permission denied
      • 2.3.4、使用./nexus run &后台启动遇到的坑
      • 2.3.5、使用./nexus start启动
      • 2.3.6、给防火墙添加8081的端口暴露
  • 三、登录Nexus
    • 3.1、如果Nexus的版本不是3.7之后则使用admin/admin123登录
    • 3.2、如果Nexus的版本是3.7之后
  • 四、上传自己的jar包到Nexus
    • 4.1、nexus简单介绍
      • 4.1.1、仓库种类介绍
      • 4.1.2、私有仓库工作原理
      • 4.1.3、私有仓库简单配置
        • 4.1.3.1、添加阿里云私服代理
        • 4.1.3.2、配置组仓库maven-public
    • 4.2、配置maven使用私服下载jar
      • 4.2.1、配置全局下载
        • 4.2.1.1、maven的setting.xml文件配置maven-public仓库镜像
        • 4.2.1.2、全局配置下载依赖(即项目pom无需配置)
      • 4.2.2、配置单项目maven私服下载
        • 4.2.2.1、maven的setting文件配置
        • 4.2.2.2、maven的setting文件配置
      • 4.2.3、IEDA上传jar到maven私服
    • 4.3、参考链接

一、概要说明

在项目开发过程中,我们从原有的使用eclipse自己做项目jar包的管理到使用Maven来帮助我们管理jar包。但是有一些jar包可能是自己公司内部开发编译的,那么如何更优雅的让公司同事使用到内部开发的jar包呢?一个方案是搭建一个局域网下的Maven私服,将内部的jar放到私服上,同一个局域网下的开发人员即可以获取到jar包了。
在这里插入图片描述

二、搭建Nexus3.X(3.18)

2.1、下载Nexus

nexus下载传送门
在这里插入图片描述
PS:貌似不翻墙就下载不了;需要翻墙才行!

2.2、解压Nexus

解压Nexus

sudo tar -xzvf nexus-3.18.0-01-unix.tar.gz

在这里插入图片描述
解压后,我们可以看到有两个文件夹

1.nexus-3.18.0-01 ===> nexus的核心文件
2.sonatype-work ===> maven下载jar存放地址

2.3、启动Nexus

2.3.1、创建一个nis用户来启动nexus

进入到nexus的bin目录

cd /home/nis/software/nexus/nexus-3.18.0-01/bin

查看nexus可以使用的命令

./nexus --help

在这里插入图片描述
PS:注意点,启动Nexus官方建议不使用root用户。

## 创建一个nis用户
[root@localhost bin]# useradd nis
## 将文件夹所属改为nexus
[root@localhost local]# chown nis:nis -R nexus-3.18.0-01/

2.3.2、修改nexus3的运行用户为nis

vim nexus.rc

## 修改启动用户为nis
run_as_user="nis"

2.3.3、启动Nexus报错Cannot open file …/sonatype-work/nexus3/log/jvm.log due to Permission denied

修改文件的权限

sudo chown nis:nis -R sonatype-work/

2.3.4、使用./nexus run &后台启动遇到的坑

./nexus run &

如果使用以上方法来启动nexus则会发现不能使用之前的./nexus stop ./nexus restart等命令。
尴尬得发现不能使用“./nexus stop”命令停止服务。
在这里插入图片描述
发现虽然状态是stopped的但是访问网页还是能够访问到。
迫不得已只能通过以下命令查询nexus服务的进程,然后通过kill命令结束该nexus服务

## 查询nexus服务的进程
ps -ef | grep nexus
## 结束某个进程
kill -9 [进程号]

在这里插入图片描述
启动Nexus还是需要使用./nexus start

2.3.5、使用./nexus start启动

./nexus start

使用命令启动,但是启动时间会比较长,界面会一直停留在这个画面
在这里插入图片描述
我们直接到浏览器使用ip+8081端口访问,如果访问失败的话过一会继续刷新。
But~~~~~~~~ 刷新了大半天也没能刷新出来,怀疑是否是由于防火墙的问题

## 查看防火墙状态
sudo service firewalld status

在这里插入图片描述
关闭防火墙测试下是否能够访问到登陆界面

## 关闭防火墙
sudo service firewalld stop

在这里插入图片描述
关闭后再次刷新页面,发现可以访问到登陆界面了
在这里插入图片描述

2.3.6、给防火墙添加8081的端口暴露

# 给防火墙添加8081的端口
sudo firewall-cmd --add-port=8081/tcp
# 列出防火墙配置暴露的端口
sudo firewall-cmd --list-ports
# 移除防火墙的端口
sudo firewall-cmd --remove-port=8081/tcp

在这里插入图片描述

三、登录Nexus

3.1、如果Nexus的版本不是3.7之后则使用admin/admin123登录

3.2、如果Nexus的版本是3.7之后

在3.7之后登录的密码变成了动态生成,在提示框中我们可以看到动态生成的密码在哪里
/home/nis/software/nexus/sonatype-work/nexus3/admin.password
在这里插入图片描述
按照路径进入到相关目录
在这里插入图片描述
使用cat命令获取密码
在这里插入图片描述
登陆之后提示需要重新设置密码
在这里插入图片描述
重新设置密码之后即可登录;

四、上传自己的jar包到Nexus

4.1、nexus简单介绍

4.1.1、仓库种类介绍

  • hosted(宿主仓库库) :存放本公司开发的jar包(正式版本、测试版本)
  • proxy(代理仓库):代理中央仓库、Apache下测试版本的jar包
  • group(组仓库):使用时连接组仓库,包含Hosted(宿主仓库)和Proxy(代理仓库)

4.1.2、私有仓库工作原理

首先在本地仓库中找,如果没命中,那么就找远程私服;远程私服的查找规则同样是先找host属性的私有库,然后再去找proxy属性的远程仓库;可以配置多个proxy;
在这里插入图片描述

4.1.3、私有仓库简单配置

4.1.3.1、添加阿里云私服代理

阿里云私服地址:http://maven.aliyun.com/nexus/content/groups/public/
在这里插入图片描述
在这里插入图片描述

4.1.3.2、配置组仓库maven-public

将阿里云仓库和其他的几个仓库都放到该组仓库中;
在这里插入图片描述

4.2、配置maven使用私服下载jar

4.2.1、配置全局下载

4.2.1.1、maven的setting.xml文件配置maven-public仓库镜像

    <mirror>
		<id>nexus</id>
		<!--*指的是访问任何仓库都使用我们的私服-->
		<mirrorOf>*</mirrorOf>
		<name>nexus maven</name>
		<url>http://192.168.2.66:8081/repository/maven-public/</url>
	</mirror>

4.2.1.2、全局配置下载依赖(即项目pom无需配置)

在maven的setting.xml文件中配置私服配置,这种方式配置后所有本地使用该配置的maven项目的pom文件都无需配置私服下载相关配置。

<profiles>
	<profile>
     	<id>mycof</id>
        <repositories>
        <!-- 私有库地址-->
          <repository>
          <id>nexus</id>
          <url>http://192.168.2.66:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>      
      <pluginRepositories>
        <!--插件库地址-->
        <pluginRepository>
          <id>nexus</id>
          <url>http://192.168.2.66:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
           </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
</profiles>

激活使用上面的配置

  <!--激活profile-->
	<activeProfiles>
	  <activeProfile>mycof</activeProfile>
	</activeProfiles>

4.2.2、配置单项目maven私服下载

4.2.2.1、maven的setting文件配置

配置了一个releases和一个snapshots的仓库用户名和密码;

    <server>
        <id>maven-releases</id>
        <username>admin</username>
        <password>123456</password>
	</server>
	<server>
        <id>maven-snapshots</id>
        <username>admin</username>
        <password>123456</password>
	</server>

4.2.2.2、maven的setting文件配置

	<!--打包到maven仓库-->
	<repositories>
		<repository>
			<id>nexus</id>
			<name>192.168.2.66 private nexus</name>
			<url>http://192.168.2.66:8081/repository/maven-public/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>

	<pluginRepositories>
		<pluginRepository>
			<id>nexus</id>
			<name>local private nexus</name>
			<url>http://192.168.2.66:8081/repository/maven-public/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>

	<distributionManagement>
		<repository>
			<id>maven-releases</id>
			<name>Releases</name>
			<url>http://192.168.2.66:8081/repository/maven-release/</url>
		</repository>
		<snapshotRepository>
			<id>maven-snapshots</id>
			<name>Snapshot</name>
			<url>http://192.168.2.66:8081/repository/maven-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

测试发现只需要配置以下代码即可做IDEA的上传操作

<distributionManagement>
	<repository>
		<id>maven-releases</id>
		<name>Releases</name>
		<url>http://192.168.2.66:8081/repository/maven-release/</url>
	</repository>
	<snapshotRepository>
		<id>maven-snapshots</id>
		<name>Snapshot</name>
		<url>http://192.168.2.66:8081/repository/maven-snapshots/</url>
	</snapshotRepository>
</distributionManagement>

4.2.3、IEDA上传jar到maven私服

如下图所示的deploy按钮点击后即可开始打包上传到maven私服;
在这里插入图片描述
下图包结构中版本号后还有个实际jar的version是不同的,因为在snapshots版本是允许进行同一个版本的多次推送的。
在这里插入图片描述
如下图为上传的正式版本的jar,则会显示与在pom中定义的版本一致的version;但是release版本不允许同版本多次推送,只能通过修改pom.xml文件中的version版本;
在这里插入图片描述

4.3、参考链接

https://www.jianshu.com/p/1cfbc1518fce

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux学习笔记】Linux环境搭建Maven私服 的相关文章

  • python app教程-Python zipapp打包教程(超级详细)

    经过复杂的开发 调试之后 xff0c 终于得到一个 Python 程序 xff0c 这个程序或许精巧 xff0c 或许有些古拙 xff0c 但它是我们心血的结晶 xff0c 我们当然希望将这个程序发布出来 Python 提供了一个 zipa
  • python 文字语音朗读-怎么用 Python 来朗读网页 ?

    是不是有的时候懒得自己看新闻 xff1f 那么不妨试试用 Python 来朗读给你听吧 网页转换成语音 xff0c 步骤无外乎 xff1a 网页正文识别 xff0c 获取到正文的文本内容 xff1b 文本转语音 xff0c 通过接口将文本转
  • python 填充折线图下部区域

    整理一下 xff0c 运行图 xff1a 全部代码为 xff1a from pylab span class token function import span matplotlib rcParams span class token p
  • python语音在线编辑-Python:语音处理,实现在线朗读RFC文档或本地文本文件

    本文主要讲解如何使用python来实现将文本转为语音 xff0c 以一个小例子为例 xff0c 写了一下用pyTTS来朗读本地方件或在线朗读RFC文档 xff0c 当然也可以修改一下 xff0c 做成在线朗读新闻之类的 xff0c 另本来想
  • python画函数图像-python实现画出e指数函数的图像

    这里用Python逼近函数y 61 exp x 同样使用泰勒函数去逼近 exp x 61 1 43 x 43 x 2 2 43 43 x n n 43 usr bin python coding utf 8 import numpy as
  • python使用方法视频-使用Python进行视频处理

    Imageio逐帧视频处理 安装 conda install imageio 将视频转换成图片 import imageio timeF 61 10 reader 61 imageio get reader 39 imageio cocka
  • python认证证书有哪些-python考试认证

    广告关闭 腾讯云双11爆品提前享 xff0c 精选热门产品助力上云 xff0c 云服务器首年88元起 xff0c 买的越多返的越多 xff0c 最高满返5000元 xff01 除了之前热议的加入高考和中小学教育之外 xff0c 现在连普通大
  • python代码写完怎么运行-Python 项目代码写完了,然后怎么打包和发布?

    你把你的代码写完了 xff0c 是不是要给别人使用下 xff0c 怎么打包你的项目代码呢 喂 xff0c 开源么 接下来小帅b就跟你说说 xff0c 如何打包你的代码 就拿我们上次演示的 用 Python 开发一个 个人计划 todolis
  • Zoom to Learn, Learn to Zoom

    Abstract 本文表明 xff0c 将机器学习应用于数字变焦时 xff0c 对真实 原始的传感器数据进行操作是有益的 现有的基于学习的超分辨率方法不使用真实的传感器数据 xff0c 而是对经过处理的RGB图像进行操作 我们表明 xff0
  • 6个非常实用的 Python 代码块,适合收藏~

    大家好 xff0c 今天分享几个平时我会用到的 Python 代码块 xff0c 每个都小而精 xff0c 喜欢记得关注 点赞 收藏 1 xff0c 批量修改文件名 日常工作中 xff0c 可能会有这样的需求 xff1a 把一个文件夹下所有
  • 1.音视频播放原理介绍

    音视频技术主要包含以下几种 xff1a 封装技术 xff0c 视频压缩技术 xff0c 音频压缩技术 xff0c 流媒体协议技术以及防盗链技术 接下来的几篇文章将对这几种技术做深入的研究和实践 下面简单说明一下视频播放的原理 xff08 以
  • 码云仓库建库

    方法一 xff1a 先将在码云上新建的仓库clone到本地 xff0c 修改后再push到码云仓库 git clone https gitee com 用户个性地址 工程名字 git 将远程仓库克隆到本地 在克隆过程中 xff0c 如果仓库
  • Python 画多图 统计直方图

    画直方图的命令是这个 xff1a 把里面的内容改了就可以 ec参数调整的是edgecolor xff0c 即框线颜色 matplotlib pyplot hist span class token punctuation span x sp
  • 输入2个整数,求最大公约数和最小公倍数

    输入2个整数 xff0c 求最大公约数和最小公倍数 关于最大公约数的算法 xff0c 古希腊数学家欧几里得已经在2200年前给出我们算法公式 xff0c 我们直接拿来用就可以了 欧几里得算法也被称为辗转相除法 xff0c 用来求最大公约数
  • WSL2 安装 图形系统 及遇到的坑

    wsl本身不带有图形界面 xff0c 需要自己安装 安装流程如下 xff1a 一 windows环境安装VcXsrv 默认安装即可 二 Ubuntu环境安装 xfce4 sudo apt get install xfce4 三 Ubuntu
  • 【美团】项目学习1:登录逻辑实现

    rest framework 和app应用 INSTALLED APPS span class token operator span span class token punctuation span span class token s
  • KMP算法

    一 何谓模式串匹配 模式串匹配 xff0c 就是给定一个需要处理的文本串 xff08 理论上应该很长 xff09 和一个需要在文本串中搜索的模式串 xff08 理论上长度应该远小于文本串 xff09 xff0c 查询在该文本串中 xff0c
  • webApi不能使用put和delete请求的处理方式

    今天调试webApi接口的时候 xff0c 分别使用get post put delete方式都试一下 xff0c 发现get和post方式都能正常调用 xff0c 但是使用put和delete的时候就报错了 xff0c 如下图所示 xff
  • Git 中 6 个基本常用命令

    大家好啊 xff0c 我是大田 想更深刻了解 Git 常用命令 xff0c 先来看看原理图 xff1a 我们使用 Git 操作的核心步骤就是 xff1a 先add代码到git缓存 然后commit到git本地仓库 最后push到远程Gith
  • Ubutun 使用easy-rsa 自签证书

    sudo apt install easy rsa mkdir root cert easy rsa ln s usr share easy rsa easy rsa cd root cert easy rsa easyrsa init p

随机推荐

  • Ubuntu ARM环境安装

    基础环境 防火墙 jiangzz 64 ubuntu span class token function sudo span ufw status Status inactive jiangzz 64 ubuntu span class t
  • 关系代数练习

    设有三个关系 xff1a S S SNAME AGE SEX SC S C GRADE C C xff0c CNAME xff0c TEACHER 试用关系代数表达式表示下列查询语句 xff1a 1 检索LIU老师所授课程的课程号和课程名
  • 使用Opencv调用摄像头失败的解决办法

    这几天参考 OpenCV3编程入门 书中的 调用摄像头采集图像的代码进行编程 xff0c 可是代码照着书上的打完了 xff0c 进行编译的时候竟然报错了 xff0c 于是乎就在网上查找错误的解决办法 xff0c 一开始是以为自己的驱动没装好
  • java日记(一)理解代码片段

    最近跟着Berkeley的CS61B学java 跨专业小白一个学起来比较吃力 xff0c 还好有大佬带着 决定开个贴子整理一下 代码片段是 xff1a DO NOT MODIFY ANYTHING ABOVE THIS LINE span
  • IOS - ReplayKit2 获取影像方向+ReplayKit的坑

    插件对象 64 interface SampleHandler RPBroadcastSampleHandler 重写方法 void processSampleBuffer CMSampleBufferRef sampleBuffer wi
  • Sublime Text运行C和C++程序

    原文链接 xff1a Sublime Text运行C和C 43 43 程序 Sublime Text 是一款当下非常流行的文本编辑器 xff0c 其功能强大 xff08 提供有众多的插件 xff09 界面简洁 还支持跨平台使用 xff08
  • VTK——自定义三维裁剪Widget,恢复Widget(任意形状,圆形,矩形裁剪)vtkCustomPaintWidget

    裁剪图标可以通过键盘上下键切换 xff0c 裁剪模式可以通过键盘左右键切换 xff0c 裁剪区域的显示 xff0c 可以显示为Mask或者显示为Contour边界 xff0c 测试效果如下
  • iOS UITableViewCell高度自适应

    UITableViewCell高度自适应 iOS8之后 我们只需要设置这两句代码之后 xff0c 即可放心的往cell的控件里面加上内容 xff0c cell会根据内部所有控件的高度动态的计算自己的高度从而显示出来 tableView es
  • 记一次vncServer的离线安装经历

    记一次vncServer的离线安装经历 背景 xff1a 需要在一台服务器上面装Oracle xff0c 但是服务器并不能接触到 xff0c 所以只能在客户端进行远程ssh操作 首先根据我以往装Oracle的经验 xff0c 先把安装包这些
  • debian 修改桌面背景

    64 桌面背景 push 图片到对应目录替换 xff1a adb push 图片 usr share desktop base active theme wallpaper contents images 64 当前语言查看 cat etc
  • 【计算机图形学基础教程】MFC基本绘图函数2

    MFC基本绘图函数 绘图工具类 CGdiObject类 xff1a GDI绘图工具的基类CBitmap类 xff1a 封装了GDI画刷 xff0c 可以选作设备上下文的当前画刷 xff0c 用于填充图形的内部CFont类 xff1a 封装了
  • thrift安装及示例

    1 简介 Apache Thrift软件框架 xff08 用于可扩展的跨语言服务开发 xff09 将软件堆栈与代码生成引擎结合在一起 xff0c 它有自己的跨机器的通信框架 xff0c 并提供一套库 它是一个代码生成器 xff0c 按照它的
  • you-get库二开,带UI界面的下载器

    you get库二开 带UI界面的下载器 span class token comment coding utf 8 span span class token comment Form implementation generated f
  • 工厂方法模式【Python篇】

    前言 在 设计模式 一书中工厂模式提到了 xff1a 工厂方法模式 xff08 Factory Method xff09 抽象工厂模式 xff08 Abstract Factory xff09 但是在实际过程中还有一种工厂模式经常被使用 x
  • docker安装gitlab 教程详解

    文章目录 前言一 环境处理二 docker部署gitlab三 调整gitlab配置1 配置克隆项目时所需2 root所需 参考 前言 环境 xff1a 1 xff1a Linux dnsserver moa kdzl cn 3 10 0 6
  • 问题解决:consider to specify kernel configuration cache directory through OPENCV_OCL4DNN_CONFIG_PATH par

    在使用Openpose代码运行的时候 xff0c 提示 xff1a consider to specify kernel configuration cache directory through OPENCV OCL4DNN CONFIG
  • zabbix监控平台搭建,及监控华为S5735S系列交换机和2288hv5服务器

    提要 无监控不运维 xff01 告别 救火员 的运维 二次搭建zabbix了 xff0c 这次打算以zabbix 集团基础硬件为主 43 prometheus k8s 43 微服务集群为主 43 grafana dashbroad展示 xf
  • Selenium 常用API大全(一篇就够)

    Selenium Crawl API xff08 一篇就够 xff09 万字长文整理不易 xff0c 希望对各位有所帮助 xff0c 欢迎大家一键三连 xff0c 点赞收藏加关注 同时也欢迎大家交流分享 xff0c 共同学习互相进步 xff
  • CV和NLP的区别

    本质 xff08 根 xff09 上没有区别 xff0c 都是信息信号处理 xff0c 都是高维信号的分解和组合 xff0c 但是信号的结构特征有区别 xff0c 所以需要不同的策略来挖掘数据信息 xff0c 即使用不同的分解和组合策略 x
  • 【Linux学习笔记】Linux环境搭建Maven私服

    Linux环境搭建Maven私服 一 概要说明二 搭建Nexus3 X xff08 3 18 xff09 2 1 下载Nexus2 2 解压Nexus2 3 启动Nexus2 3 1 创建一个nis用户来启动nexus2 3 2 修改nex