从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • JavaSE

  • JavaSenior

  • JavaEE

    • JavaEE 概念

    • Ant

    • Maven

      • 什么是 Maven
      • 安装Maven
      • 第一个 Maven 项目
      • Maven 的组成和配置
      • 快速创建 Maven 项目
      • 创建 Web 项目
      • Maven 的生命周期和构建
      • Maven 的依赖管理
      • Maven 的插件管理
      • IDEA 关于 Maven 的设置
      • 使用 Maven 完成 dao 层
      • 使用 Maven 完成 service 层
      • 使用 Maven 完成 web 层
      • Maven 的拆分和聚合
      • Nexus 的搭建
      • Nexus 的使用
        • 配置上传 jar 包
        • 配置从私服下载 jar 包
        • profiles 标签
        • 总结
      • 安装第三方 jar 包到私服
      • Maven 系列完结
    • 日志

    • Junit

    • JDBC

    • XML 和 JSON

  • JavaWeb

  • Spring

  • 主流框架

  • SpringMVC

  • SpringBoot

  • Java
  • JavaEE
  • Maven
2023-05-15
目录

Nexus 的使用

# 130.Nexus 的使用

接下来我们讲讲如何使用 Nexus,这也是工作中常用的功能。

# 配置上传 jar 包

接下来我们演示如何上传我们自己的 Maven 项目到私服中。

首先在 Maven 的配置文件 settings.xml 中,配置关于我们自己私服的认证信息,找到 <servers> 标签,然后在里面加上仓库的私服用户和密码:

<server>
    <id>releases</id>
    <username>admin</username>
    <password>admin123</password>
</server>

<server>
    <id>snapshots</id>
    <username>admin</username>
    <password>admin123</password>
</server>
1
2
3
4
5
6
7
8
9
10
11

‍ 分别复制 release 和 snapshot 的地址:

然后在 dao 模块中,配置 pom.xml,加入如下内容:

<distributionManagement>

    <repository>
        <id>releases</id>
        <url>http://127.0.0.1:8081/repository/maven-releases/</url>
    </repository>

    <snapshotRepository>
        <id>snapshots</id>
        <url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
    </snapshotRepository>

</distributionManagement>
1
2
3
4
5
6
7
8
9
10
11
12
13

‍ 注意,id 和要 Maven 中的配置文件的 id 对应。

配置完后,我们就可以测试了。我们可以在 IDEA 中直接双击 deploy,或者在命令行执行 mvn deploy

然后控制台会告诉我们结果:上传成功了

‍

注意,deploy 是生命周期的最后一个,那么之前的生命周期也会被执行,例如 mvn install,所以也会安装到本地仓库中。 ‍ 注意:我们目前仅仅是配置了上传 jar 包,但是没有配置下载 jar 包,所以如果本地仓库没有了这些 jar 包(例如误删了),那么 Maven 还是会首先从本地仓库找,找不到就去远程仓库找,都找不到,最后是会报错的,我们可以测试下,删掉本地仓库的 jar 包:

‍

再次启动就会报错了:Could not find artifact com.peterjxl:LearnJavaMaven_dao

[ERROR] Failed to execute goal on project LearnJavaMaven_web: Could not resolve dependencies for project com.peterjxl:LearnJavaMaven_web:war:1.0-SNAPSHOT: Could not find artifact com.peterjxl:LearnJavaMaven_dao:jar:1.0-SNAPSHOT -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
1
2
3
4
5
6
7

# 配置从私服下载 jar 包

‍ 我们在 Maven 的配置文件 settings.xml 中,找到 <profiles> 标签,然后在里面添加如下配置:

 <profile> 
  <!--profile的id -->
  <id>dev</id>
  
  <repositories>
    <repository> <!--仓库id,repositories可以配置多个仓库,保证id不重复 -->
      <id>nexus</id> <!--仓库地址,即nexus仓库组的地址 -->
      <url>http://127.0.0.1:8081/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://127.0.0.1:8081/repository/maven-public/</url>
    </pluginRepository>
  </pluginRepositories>
</profile>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

‍ 然后在 <profiles> 标签之外(例如下方)配置使用哪个配置:

<activeProfiles>
  <activeProfile>dev</activeProfile>
</activeProfiles>
1
2
3

然后我们再尝试启动:可以看到从私服里寻找依赖了

# profiles 标签

既然用到了该标签,我们就简单说明下。

开发环境和测试环境的配置通常是不一致的,为了打包方便,为此我们可以定义多个 profile,一套环境一个 profile;然后设置 activeProfiles 来决定使用哪个环境的配置。

除了在 settings.xml 中配置,我们也可以在 pom.xml 文件中配置,并且通过 mvn -P ID 来指定用哪个 profile。

在 IDEA 中,也有可视化界面:

‍

# 总结

本文我们已将 Nexus 最基本的使用讲完了,基本上也够用工作中开发用了。

除此之外,Nexus 还有很多有用的功能,例如用户管理,权限管理,

本项目已将源码上传到 Gitee (opens new window) 和 GitHub (opens new window) 上。并且创建了分支 demo8,读者可以通过切换分支来查看本文的示例代码。

上次更新: 2025/6/3 09:31:54
Nexus 的搭建
安装第三方 jar 包到私服

← Nexus 的搭建 安装第三方 jar 包到私服→

最近更新
01
语雀文档一键下载至本地教程
07-04
02
要成功,就不要低估环境对你的影响
07-03
03
血泪教训:电子设备要定期开机
07-02
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式