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

Maven从入门到精通(三)

一、Settings 配置

settings.xml 用来配置 maven 项目中的各种参数文件,包括本地仓库、远程仓库、私服、认证等信息。

全局 settings、用户 setting、pom 的区别:

  • 全局 settings.xml 是 maven 的全局配置文件,一般位于 ${maven.home}/conf/settings.xml,即 maven 文件夹下的 conf 中。
  • 用户 setting 是 maven 的用户配置文件,一般位于 ${user.home}/.m2/settings.xml,即每位用户都有一份配置文件。
  • pom.xml 文件是项目配置文件,一般位于项目根目录下或子目录下。

配置优先级从高到低:pom.xml > 本地 settings > 全局 settings。如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。

二、maven仓库

如前言所述,我们依赖的外部服务是需要有地方进行存储的,而存储的地方就称之为仓库。其中仓库又分为本地仓库、中央仓库、镜像仓库、私服。

1、本地仓库
当项目在本地编译或运行时,直接加载本地的依赖服务无疑是最快的。默认情况下,不管在 Window 还是 Linux 下,每个用户在自己用户目录下都有一个路径名为.m2/repository/ 的仓库目录。

而原始的本地仓库是为空的,因此 maven 需要知道一个网络上的仓库,在本地仓库不存在时前往下载网络上的仓库,也就是远程仓库。

2、私服
一般来说中央仓库或者镜像仓库都能满足我们的需求,但是当我们在公司内合作开发代码时,可能因为系统保密性原因,有一些其他同事开发的外部依赖只希望能够被本公司的人使用,而如果上传到镜像仓库则保密性就不复存在了。因此私服最主要的功能时存储一些公司内部不希望被公开的依赖服务。

3、镜像仓库
总结来说,镜像仓库就是将国外的中心仓库复制一份到国内,这样一来下载速度以及访问速度都将很快。

4、中央仓库
当 maven 未配置时,会默认请求 maven 的中央仓库,中央仓库包含了这个世界上绝大多数流行的开源 java 构件,以及源码、作者信息、SCM, 信息、许可证信息等,每个月这里都会接受全世界 java 程序员大概 1 亿次的访问,它对全世界 java 开发者的贡献由此可见一斑。

但是由于最常见的例如网络原因等,国外的中央仓库使用起来并不顺利,因此就有了下载地址为国内的中央仓库,也就是镜像仓库。

三、settings 配置详解 

主要配置元素‌:包括本地仓库(localRepository)、镜像(mirrors)、服务器(servers)、代理(proxies)、配置文件(profiles)等‌。

1、本地仓库地址:
<localRepository>/path/to/local/repo</localRepository>

指定Maven用来存储下载的插件和依赖的本地仓库位置。 

2、远程仓库配置:
<mirrors><mirror><id>mirrorId</id><mirrorOf>repositoryId</mirrorOf><url>http://my.repository.com/repo/path</url></mirror>
</mirrors>

配置镜像仓库,用于代理远程仓库,提高下载速度或稳定性。

3、私服认证信息:
<servers><server><id>serverId</id><username>your_username</username><password>your_password</password></server>
</servers>

配置用于认证的服务器信息,比如私服的用户名和密码。 

4、profile激活:
<profiles><profile><id>profileId</id><activation><activeByDefault>true</activeByDefault></activation><repositories><!-- 仓库配置 --></repositories><pluginRepositories><!-- 插件仓库配置 --></pluginRepositories></profile>
</profiles>

配置profile,根据条件激活相关配置,比如激活时机或环境变量。 

5、代理服务器配置:
<proxies><proxy><id>proxyId</id><active>true</active><protocol>http</protocol><host>proxy.mycompany.com</host><port>8080</port><username>proxyuser</username><password>somepassword</password><nonProxyHosts>local.net|some.host.com</nonProxyHosts></proxy>
</proxies>

如果你处于需要通过代理服务器访问互联网的环境下,可以配置代理服务器的信息。

http://www.lryc.cn/news/440516.html

相关文章:

  • Red Hat 和 Debian Linux 对比
  • Axure设计之全屏与退出全屏交互实现
  • 如何测试出自己电脑的网络速度(网速)?
  • 如何利用AI进行有效的科技产品发布
  • 二层、三层网络基本原理
  • 全面掌握 Jest:从零开始的测试指南(上篇)
  • Go 交叉编译
  • goctl安装失败
  • DebateGPT:通过多智能体辩论监督微调大模型
  • 【最新综述】基于深度学习的超声自动无损检测(下)
  • kali——tshark的使用
  • TortoiseSVN图标不显示的解决
  • Oracle 11gR2打PSU补丁详细教程
  • 2.4 卷积1
  • OA项目值用户登入首页展示
  • 如何关闭前端Chrome的debugger反调试
  • 硬件工程师笔试面试——晶振
  • 如何用安卓玩Java版Minecraft,安卓手机安装我的世界Java版游戏的教程
  • linux上用yolov8训练自己的数据集(pycharm远程连接服务器)
  • Git rebase 的使用(结合图与案例)
  • 一文讲懂Mac中的环境变量
  • 将硬盘的GPT 转化为MBR格式
  • C++基于select和epoll的TCP服务器
  • SpringBoot 读取配置文件的4种方式
  • 【车载开发系列】ParaSoft单元测试环境配置(三)
  • 如何让Threejs的canvas背景透明?
  • Text-to-SQL技术升级 - 阿里云OpenSearch-SQL在BIRD榜单夺冠方法
  • [性能]高速收发的TCP/MQTT通信
  • OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(下)
  • 网络安全学习(五)Burpsuite实战