当前位置: 首页 > news >正文

【Java架构-包管理工具】-Maven私服搭建-Nexus(三)

本文摘要

Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven私服搭建-Nexus


文章目录

  • 本文摘要
  • 1. Nexus安装
  • 2. Nexus配置
  • 3. Nexus仓库类型
  • 4.发布依赖
    • 4.1 配置仓库用户名密码
    • 4.2 配置上传仓库地址
    • 4.3 上传依赖
    • 4.4 查看Nexus仓库
    • 4.5 下载依赖
      • 4.5.1 setting.xml(mirror)配置
      • 4.5.2 pom.xml(repositories)配置
      • 4.5.3 settings.xml(profiles)配置
  • 6. 安装三方依赖
    • 6.1 安装至本地
    • 6.2 上传至私服


1. Nexus安装

使用Docker进行安装

  • 拉取镜像
    docker pull sonatype/nexus3
  • 启动镜像
    docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3

2. Nexus配置

# Jetty section
# 端口,可以修改
# application-port=8081
# application-host=0.0.0.0
# nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
# nexus-context-path=/${NEXUS_CONTEXT}# Nexus section
# nexus-edition=nexus-pro-edition
# nexus-features=\
#  nexus-pro-feature
# nexus.clustered=false

3. Nexus仓库类型

在这里插入图片描述

  • hosted:表示用户自己上传的依赖将会上传至该仓库
  • proxy:表示代理远程仓库地址
  • group:用来组合hosted/proxy仓库,下载依赖将从该仓库下载

4.发布依赖

4.1 配置仓库用户名密码

setting.xml 文件中配置

<!-- 定义稳定版本的id名称,用户名密码 -->
<server><id>releases</id><username>admin</username><password>admin123</password>
</server>
<!-- 定义开发版本的id名称,用户名密码 -->
<server><id>snapshots</id><username>admin</username><password>admin123</password>
</server>

4.2 配置上传仓库地址

需要上传至径服所在项目pom.xml文件中配置

<distributionManagement><repository><id>releases</id><url>http://nas:18081/repository/maven-releases/</url></repository><snapshotRepository><id>snapshots</id><url>http://nas:18081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

4.3 上传依赖

idea中点击deploy

在这里插入图片描述

4.4 查看Nexus仓库

在这里插入图片描述

4.5 下载依赖

4.5.1 setting.xml(mirror)配置

该配置方案存在问题:无法拉取SNAPSHOT依赖

<mirrors><mirror><!--    配置id  --><id>nexus</id><!--     配置拦截仓库,*表示拦截所有仓库拉取请求 --><mirrorOf>*</mirrorOf><name>nexus</name><!--     配置仓库地址  --><url>http://nas:18081/repository/maven-public/</url></mirror>
</mirrors>

4.5.2 pom.xml(repositories)配置

该配置方案存在问题:该种方式只能针对某个项目下载依赖

<repositories><repository><id>nexus</id><name>nexus</name><url>http://nas:18081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository>
</repositories>
<pluginRepositories><pluginRepository><id>public</id><url>http://nas:18081/repository/maven-public/</url><name>pluginRepositories</name></pluginRepository>
</pluginRepositories>

4.5.3 settings.xml(profiles)配置

该种配置方式全局配置,可以根据需求选择配置方案,生产中选择该方式

<profiles><!-- 下载jar包配置 --><profile><!--profile的id --><id>dev</id><repositories><repository> <!--仓库id,repositories可以配置多个仓库,保证id不重复 --><id>nexus</id> <!--仓库地址,即nexus仓库组的地址 --><url>http://nas:18081/repository/maven-public/</url> <!--是否下载releases构件 --><releases><enabled>true</enabled></releases> <!--是否下载snapshots构件 --><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 --><pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 --><id>public</id><name>Public Repositories</name><url>http://nas:18081/repository/maven-public/</url></pluginRepository></pluginRepositories></profile>
</profiles>
<!-- 选择那一个配置 -->
<activeProfiles><activeProfile>dev</activeProfile>
</activeProfiles>

6. 安装三方依赖

6.1 安装至本地

mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile=fastjson-1.1.37.jar -Dpackaging=jar

6.2 上传至私服

mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=fastjson-1.1.37.jar -Durl=http://localhost:8079/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
http://www.lryc.cn/news/138159.html

相关文章:

  • 守护进程(精灵进程)
  • csdn冷知识:如何在csdn里输入公式或矩阵
  • 【前端】CSS技巧与样式优化
  • Linux下的系统编程——makefile入门
  • redis常用五种数据类型详解
  • Python代理池健壮性测试 - 压力测试和异常处理
  • 回文子串-中心拓展
  • 2023.8各大浏览器11家对比:Edge/Chrome/Opera/Firefox/Tor/Vivaldi/Brave,安全性,速度,体积,内存占用
  • python中的matplotlib画散点图(数据分析与可视化)
  • 2023前端面试笔记 —— HTML5
  • 【LeetCode】面试题总结 消失的数字 最小k个数
  • 导入功能importExcel (现成直接用)
  • cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 之一开头
  • cortex-A7核IIC实验
  • task.run()和 await task.run() 区别 await 运行机制
  • LeetCode面试经典150题(day 2)
  • 阿里云机器学习PAI全新推出特征平台 (Feature Store),助力AI建模场景特征数据高效利用
  • 网络安全工具和资源推荐: 介绍网络安全领域中常用的工具、框架、资源和学习资料
  • 『C语言入门』探索C语言函数
  • Django基础3——视图函数
  • python 基础篇 day 4 选择结构—— if 结构
  • 科技赋能,教育革新——大步迈向体育强国梦
  • 【秋招基础】后端开发——笔面试常见题目
  • 自定义loadbalance实现feignclient的自定义路由
  • 论文笔记:从不平衡数据流中学习的综述: 分类、挑战、实证研究和可重复的实验框架
  • C#设计模式六大原则之--迪米特法则
  • 一次js请求一般情况下有哪些地方会有缓存处理?
  • CSDN编程题-每日一练(2023-08-24)
  • 怎么把PDF转成Word?需要注意什么事项?
  • USACO22OPEN Pair Programming G