Docker 系列:部署nexus maven私服

本文详细介绍如何使用Docker部署Nexus私有仓库,包括环境配置、Nexus安装、Nginx代理配置、Maven仓库创建及jar包上传流程。通过具体步骤指导,实现高效管理依赖包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.环境

docker运行环境

2.创建nexus挂载目录

因为使用docker 容器化运行nexus,需要一个固定目录,用来挂载nexus存放的数据,这样容器的启动,停止,删除不会影响数据

mkdir /opt/nexus-work && chown -R 200 /opt/nexus-work

3.安装nexus

docker运行

docker run -d -p 9000:8081 -v /opt/nexus-work:/sonatype-work  --name nexus sonatype/nexus:oss

 9000端口可根据你的需要设置

4.nginx代理配置(非必须)

有域名的时候可以使用nginx代理,不需要的话可以跳过此步骤

(1.)安装nginx

docker 运行nginx时候需要设置挂载目录

我这里直接在linux系统中安装nginx,安装过程另见“Docker系列:安装nginx”

(2.)配置域名

用的是阿里云域名 域名/解析

(3)配置nexus代理

一般nginx位置在/etc/nginx/目录下 nginx.conf 里面添加

server {
        listen       80;
        server_name  www.xbmn.top;
        include /etc/nginx/default.d/*.conf;
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://localhost:9000;
        }
    }

(4)配置成功后,直接域名访问 http://www.xbmn.top/nexus

如果配置了nginx,那就换一下域名,如果没有配置nginx,那就http://你得ip:端口/nexus,即可

默认用户名和密码是admin admin123,登录后可修改密码

4.创建maven仓库

新建仓库

将新建的仓库添加到pulic group里面

5.上传jar到maven仓库

gradle环境

(1)修改build.gradle文件

apply plugin: 'maven'
apply plugin: 'maven-publish'

//可运行包的分类器(打包成功后的会以项目名-boot为包名)
bootJar.classifier = 'boot'
jar.enabled = true


[compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'
task sourcesJar(type: Jar, dependsOn: classes) {
	classifier = "sources"
	from sourceSets.main.allSource
}

artifacts {
	archives jar
	archives sourcesJar
}

uploadArchives {
	configuration = configurations.archives
	repositories.mavenDeployer {
		repository(url: "http://www.xbmn.top/nexus/content/repositories/zoe-maven/") {
			authentication(userName: "admin",password: "你的密码")
		}
		pom.project {
			name archivesBaseName
			url "http://www.xbmn.top/nexus/content/repositories/zoe-maven/"
			description 'zoesoft Development CommonUtils'
			groupId "public"
			artifactId archivesBaseName
			version version
			packaging "jar"
		}
	}
}

(2)添加一个工具类,并打包成jar上传

(3)上传成功后,在nexus maven仓库中就可以看到新的jar

6.使用jar

gradle环境

  maven{ url "http://www.xbmn.top/nexus/content/repositories/zoe-maven/"}

 

### 使用 Docker 部署 Maven 私有仓库 #### 选择合适的工具和技术栈 为了高效地管理和共享本地的 Maven 依赖,可以采用 Sonatype Nexus 作为 Maven 私服解决方案,并利用 DockerDocker Compose 进行部署和管理容器[^1]。 #### 准备工作 确保已经安装并配置好 DockerDocker Compose 环境。这一步骤对于后续操作至关重要,因为所有的服务都将运行于这些平台之上。 #### 创建 `docker-compose.yml` 文件 创建一个新的文件名为 `docker-compose.yml` 的 YAML 文件来定义所需的服务: ```yaml version: '3' services: nexus: image: sonatype/nexus3 container_name: nexus ports: - "8081:8081" volumes: - ./nexus-data:/nexus-data ``` 此配置会启动一个基于官方镜像 `sonatype/nexus3` 的 Nexus 实例,并映射端口以便外部访问。 #### 启动 Nexus 容器 执行命令以启动 Nexus 服务: ```bash docker-compose up -d ``` 该指令将以守护进程模式后台运行指定的服务实例。 #### 获取管理员账户密码 初次登录时需要获取默认管理员用户的临时密码。可以通过以下方式取得: ```bash docker exec -it $(docker ps | grep nexus | awk '{print $1}') /bin/sh -c 'cat /nexus-data/admin.password' ``` 上述脚本用于进入正在运行中的 Nexus 容器内部读取存储在 `/nexus-data/admin.password` 路径下的初始密码[^3]。 #### 浏览器访问私服地址 打开浏览器输入 http://localhost:8081 即可看到 Nexus Web UI 登录界面。 #### 发布自定义 JAR 包至私库 要在项目中发布构建产物到新建立好的 Maven 私服上,则需编辑项目的 POM 文件,在其中加入必要的分发管理部分以及认证信息设置[^2]: ```xml <distributionManagement> <repository> <id>nexus-releases</id> <url>http://your-nexus-server/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <url>http://your-nexus-server/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement> <servers> <server> <id>nexus-releases</id> <username>admin</username> <password>your_password_here</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>your_password_here</password> </server> </servers> ``` 以上 XML 片段展示了如何向 POM 中添加服务器凭证及目标仓库 URL 地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值