docker 下 部署使用自定义maven仓库

准备工作

在开始之前,您需要安装以下工具:

  • Docker:用于创建、运行和管理容器。
  • Docker Compose:用于定义和运行多个 Docker 容器的工具。
  • Maven:用于构建和上传项目到 Maven 私服。

步骤一:编写 Docker Compose 文件

下面将使用 Docker Compose 来定义和运行 Sonatype Nexus 容器。首先,创建一个名为 docker-compose.yml 的文件并添加以下内容:

version: '3'
services:
  nexus:
    image: sonatype/nexus3
    ports:
      - "8081:8081"
    volumes:
      - nexus-data:/nexus-data

volumes:
  nexus-data:

这个 Docker Compose 文件定义了一个名为 nexus 的服务,使用 Sonatype Nexus 3 的镜像。将容器的 8081 端口映射到主机的 8081 端口,以便可以通过浏览器访问 Nexus 控制台。还定义了一个名为 nexus-data 的数据卷,用于持久化 Nexus 数据。

步骤二:启动容器

现在可以使用 Docker Compose 启动 Sonatype Nexus 容器。打开命令行界面并运行以下命令:

docker-compose up -d

这将下载 Sonatype Nexus 3 的镜像并启动一个名为 nexus 的容器。这个过程可能需要一些时间,具体取决于您的网络速度。过程如下图所示


16b8dc5282c144fab4237c8f6d45e6cb.png

一旦容器启动完成,您可以使用 docker ps 命令来检查容器的状态。您应该看到一个名为 nexus 的容器正在运行:

$ docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                               NAMES
8e2ec0d72c80   sonatype/nexus3   "/usr/local/bin/nexu…"   33 seconds ago   Up 29 seconds   0.0.0.0:8081->8081/tcp, 8082/tcp   maven-private-repo_nexus_1

步骤三:配置 Nexus

3.1 访问 Nexus 控制台
现在可以通过浏览器访问 Nexus 控制台。在浏览器中输入 http://localhost:8081,您应该会看到 Nexus 的欢迎页面。

cf3758dbc42b4e25aad418d9ee0d6bf7.png

3.2 登陆

单击 “Sign In” 按钮,使用默认管理员凭据登录(用户名为 admin,密码为 admin123,根据版本会变化,应查阅官网)。当前版本店家 Sign In 后,提示Your admin user password is located in
/nexus-data/admin.password on the server.


85da24d3172ae50e92dc91fecd5265d7_80ddbcd23c9c4f15ac0b1d0c23a82b8d.png

进入容器内部查看密码:

# 进入容器,<container-id> 要替换为真实的ID,或者容器名称
docker exec -it <container-id> sh
# 查看密码
cat  /nexus-data/admin.password
4ce53c497811e075d2eb72b532795dc2_f5a81d9d03e04311912121a0be2ab06a.png

3.3 仓库服务设置

登录成功后提示进行设置

b14b7a60c47784dcd0c5b133bbdd66d9_60dd91c739e247e5b999316319a30d01.png

可以根据需要选择是否设置。主要设置修改admin密码、设置匿名用户访问是否开启

下图是开启匿名用用户访问权限(表示用户可以不用登录就能查该仓库中的依赖、并可以下载需要的依赖)后,在非登录状态下的页面


9e0cf1bfcb6b9f7f80562fb4f32d5b8c_de0219a0ca1540b1a49ac2d963ebbf71.png

登录后,您应该会看到 Nexus 的仪表板。这里是您可以管理 Maven 仓库和上传依赖的地方。下图是admin 登录后的页面,可以看到左边多了Upload按钮,上方菜单条多了设置(齿轮图标)菜单。

53c5a8b27624779cf4a985be92f2f4bc_0be955b9462245538e6c76585378ac5b.png

3.4 添加新仓库

首先,需要创建一个 Maven 仓库。单击左侧导航栏中的 “Repositories”(仓库)选项卡,然后单击 “Create repository”(创建仓库)按钮。


image.png

在弹出的窗口中,选择 “maven2(hosted)” 仓库类型。

ac0bcb6fe059b61b369b58f3dabecd0f_34e8b3389f5942af8e1d414882029f8c.png

在下一个页面中,您需要指定仓库的名称、标识符和描述。将名称设置为 “maven-releases-xzbd”,并在描述中添加一些文本,以便您和其他开发人员理解仓库的用途。


b8fc88bb7e0f708646e3e902f890f4ec_fc72cf9583b24609a4c33eb095487bfe.png

单击 “Create repository”(创建仓库)按钮,Nexus 将创建一个新的 Maven 仓库。您可以在左侧导航栏中找到该仓库。


f7f18269f758e0a191f0404f04fd74c4_c8a805df0ffb40259908cbc1c1b7aba4.png

3.5 查看仓库列表


6b41d3f3bc5d241b40f7d63df54aad33_29dff7ab9c76428890c72331eff9413d.png

步骤四:上传项目依赖

现在可以将 Maven 依赖上传到刚刚创建的 Maven 仓库中。

打开 Mavan 的 settings.xml配置文件(在Maven 安装目录的 conf 下),配置仓库认证信息:

<server>
      <id>nexus-releases-xzbd</id>
      <username>your_username_here</username>
      <password>your_password_here</password>
    </server>

打开您的 Maven 项目,并在 pom.xml 文件中添加以下内容:

<distributionManagement>
  <repository>
    <id>nexus-releases-xzbd</id>
    <name>Nexus Releases Repository</name>
    <url>http://localhost:8081/repository/maven-releases/</url>
  </repository>
</distributionManagement>

这将指定 Maven 上传依赖时使用的 Nexus 仓库。您需要将 url 值设置为您的 Nexus 仓库的 URL,这里使用的是刚刚创建的 maven-releases-xzbd 仓库。您还需要将 id 和 name 设置为您喜欢的值。

保存 pom.xml 文件后,您可以使用以下命令将项目打包后上传到 Maven 仓库中:
···
mvn deploy
···
此命令将构建项目并将其上传到 Maven 仓库中。您可以在 Nexus 控制台中检查上传的依赖是否已正确显示在 maven-releases-xzbd 仓库中。

步骤五:上传jar 并在项目中引入

打开 Mavan 的 settings.xml配置文件(在Maven 安装目录的 conf 下),配置仓库认证信息:

<server>
      <id>nexus-releases-xzbd</id>
      <username>your_username_here</username>
      <password>your_password_here</password>
    </server>

如图


image.png
  <repository>
    <id>nexus-releases-xzbd</id>
    <name>Nexus Releases Repository</name>
    <url>http://localhost:8081/repository/maven-releases/</url>
  </repository>

上传jar

例子我这里需要上传 isc_sm_agent_V2.2_20190919.jar
点击upload,选择创建的仓库
如图点击uplud 上传

image.png

导入jar到项目

如图


image.png

复制到pom中

<dependency>
  <groupId>com.sgcc.isc</groupId>
  <artifactId>isc_sm_agent</artifactId>
  <version>2_20190919</version>
</dependency>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容