欢迎光临
我们一直在努力

Docker安装Maven私服

为何需要 maven 私服

我们从项目实际开发来看:

  1. 一些无法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其他依赖项目使用。

  2. 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,由于私服已经缓存了大量构件,整个项目还是可以正常使用的。同时,也降低了中央仓库的符合。

Nexus

安装

Nexus 是用来搭建 Maven 私服的可以说是唯一的工具,它的官网上是这样说的:“世界上第一个也是唯一的免费使用的仓库解决方案”。目前的最新版本是 OSS 3.x。提供了针对 Windows、Unix、OS X 三种系统的版本。

这里只简单说明 Docker 下的安装方式

  1. 拉取 Nexus3 镜像
docker pull sonatype/nexus3 
  1. 启动镜像并将容器内部/nexus-data挂载到主机/root/nexus-data目录
docker run \ -p 8081:8081 \ --name nexus \ -v /root/nexus-data:/nexus-data \ --restart=always \ -d sonatype/nexus3 
  1. 通过 docker ps -a 查看容器启动情况
  2. 访问 ip:8081

image-20220405190620647

至此,私服搭建成功。

登录

默认登陆账号 admin admin123

注意,这个时候你可能会遇到如下这个错误:

Incorrect username or password, or no permission to use the application. 

image-20220405190954338

maven 私服登录的时候默认是不能使用明文密码,要使用密文密码,一般在你创建容器的目录

  1. 查看密文

    宿住机中执行

cat /root/nexus-data/admin.password d62fa667-a22b-41db-a14a-6aa6f793f4fb 
  1. 重新登陆后,会提示你重设密码

image-20220405191757774

创建 Maven 仓库

image-20220405192112470

选择maven2(hosted)

  • proxy:这是代理方式,它是用来代理中央仓库的,例如我们依赖的包在本地仓库没有,就会到私服获取,私服没有的话,会到中央仓库先把包下载到这里,然后再下载到本地仓库;

  • hosted:指的是我们公司或团队内部的包,并且 hosted 类型的仓库会分为 releases 和 snapshots 两个,前者是正式版,后者一般是开发测试版;

  • group:它的目的就是把多个仓库组合起来,然后我们项目中只需要配置上这个类型的仓库地址,就可以把它里面组合的几个仓库都关联上。

image-20220405192149963

填写仓库名称(其他配置按需配置)

image-20220405192515896

创建用户

image-20220405193645805

创建好账户后就可以在右上角切换账户了。

配置 Maven

接着就是配置本地 maven > conf 了,找到自己本机的 maven conf 下的 setting.xml 文件,添加如下信息:

注意是 services 节点下:

 <servers> <server> <id>lzscxb</id> <username>lzscxb</username> <password>123456</password> </server> <servers> 

发布 Maven 插件到仓库

创建一个普通的 maven 项目,配置 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"> <modelVersion>4.0.0</modelVersion> <groupId>cn.lzscxb</groupId> <artifactId>lzscxb-test</artifactId> <version>1.0-RELEASE</version> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <!--注意 <version>1.0-RELEASE</version> 限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE --> <!--指定仓库地址 --> <distributionManagement> <repository> <!--此名称要和.m2/settings.xml中设置的ID一致 --> <id>lzscxb</id> <url>http://lzscxb.cn:8081/repository/maven-repo/</url> </repository> </distributionManagement> <build> <plugins> <!--发布代码Jar插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.7</version> </plugin> <!--发布源码插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> 

发布插件

mvn deploy 

image-20220405194811789

查看发布的 Maven

image-20220405194955318

项目引入私服中依赖

pom.xml

<dependencies> <dependency> <groupId>cn.lzscxb</groupId> <artifactId>lzscxb-test</artifactId> <version>1.0-RELEASE</version> </dependency> </dependencies> <repositories> <repository> <id>lzscxb</id> <url>http://lzscxb.cn:8081/repository/maven-repo/</url> </repository> </repositories> 

image-20220405195510486

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《Docker安装Maven私服》
文章链接:https://www.456zj.com/37961.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址