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

Maven settings.xml 私服上传和拉取配置

公司内部自行开发的依赖包需要上传到maven私服时,可以在项目的pom.xml中配置,也可以在本地计算机的maven目录settings.xml中配置。本文讲述的是如何在settings.xml中进行配置。

场景:有两个maven私服,其中一个为公司的,另一个为个人的,每个私服都有release库和snapshot库,加起来一共4个库:

公司的:company-release  company-snapshot

个人的:personal-release  personal-snapshot

下面的配置代码中的注释描述了配置方法

<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd"><!-- 本地仓库路径 --><localRepository>D:\maven\repo</localRepository><servers><!-- server标签用来配置私服的用户名和密码,每个repo都对应一个server,咱们有4个repo(公司release,公司snapshot,个人release,个人snapshot),当然就有4个server块。--><!--公司release --><server><!--server id要与profile中的repository id和altReleaseDeploymentRepository中的id一致 --><id>company-release</id><username>{your repo username}</username><password>{your repo password}</password></server><!--公司snapshot --><server><id>company-snapshot</id><username>{your repo username}</username><password>{your repo password}</password></server><!--个人release --><server><id>personal-release</id><username>{your repo username}</username><password>{your repo password}</password></server><!--个人snapshot --><server><id>personal-snapshot</id><username>{your repo username}</username><password>{your repo password}</password></server></servers><!-- 注意配置mirror时,mirrorOf一定要排除私服的repository id否则私服的仓库也会用mirror代理,导致找不到依赖。--><mirrors><mirror><id>aliyunmaven</id><!-- mirrorOf表示这个镜像是哪些repository的镜像,这里声明的是这个镜像是central, jcenter的镜像,那么自然私服不会被镜像代理。如果某个镜像想代理除私服之外的所有repository,那么就要使用排除法,写法为:<mirrorOf>*,!company-release,!company-snapshot,!personal-release,!personal-                        snapshot</mirrorOf>上面的"*"表示该镜像代理所有repository,"!"表示排除这个repository,这样除了带"!"的repo以外的所有repo都会被该镜像代理。--><mirrorOf>central,jcenter</mirrorOf><name>mirror</name><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors><profiles><!-- 公司maven私服配置 --><profile><!-- profile id用于标识profile,当选择要激活哪个配置时会用到,下面会讲 --><id>company</id><properties><!-- altReleaseDeploymentRepository用于配置推送信息 标签里面的值格式为:repository-id::default::url 其中repository-id和下文的repository标签里的id是一样的,当然也就和server id一样,这样才能正确传递用户名密码。--><!-- altReleaseDeploymentRepository是release库信息当你往release库推送时会用到--><altReleaseDeploymentRepository>company-release::default::https://xxxx.xxx</altReleaseDeploymentRepository>	<!-- altSnapshotDeploymentRepository是snapshot库信息当你往snapshot库推送时会用到--><altSnapshotDeploymentRepository>company-snapshot::default::https://xxxx.xxx</altSnapshotDeploymentRepository></properties><repositories><!-- repository用于配置拉取 --><repository><!-- repository id要和server id保持一致,才能正确传递用户名和密码。 --><id>company-release</id><!-- repo的url --><url>https://xxxx.xxx</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository><repository><id>company-snapshot</id><url>https://xxxx.xxx</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile><!-- 个人的私服配置 --><profile><id>personal</id><properties><altReleaseDeploymentRepository>personal-release::default::https://xxxx.xxx</altReleaseDeploymentRepository><altSnapshotDeploymentRepository>personal-snapshot::default::https://xxxx.xxx</altSnapshotDeploymentRepository></properties><repositories><repository><id>personal-release</id><url>https://xxxx.xxx</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository><repository><id>personal-snapshot</id><url>https://xxxx.xxx</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile></profiles><!-- 当存在多个私服时,选择要推送给哪个私服修改这里即可,将 <activeProfile></activeProfile>标签中的值改为上面配置的profile中对应远程库的profile id。然后你的项目的pom文件中,版本号中如果是x.x.x-SNAPSHOT结尾(注意SNAPSHOT要大写)的,maven会自动上传到snapshot库,否则上传到release库。比如你的项目的pom文件中写的版本号是"0.0.1-SNAPSHOT",那么使用"mvn deploy"命令就会自动上传到快照库。--><activeProfiles><activeProfile>company</activeProfile></activeProfiles><!--这里选择的是company私服配置,那么如果项目的pom中写的版本号是"0.0.1-SNAPSHOT",使用"mvn deploy"命令就会上传到公司私服的snapshot库。也就是前面代码定义的id叫做"company-snapshot"的repository。如果要上传到company-release库,那么版本号就写成"0.0.1"即可。-->
</settings>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 有效应对服务器遭受CC攻击的策略与实践
  • 鸿蒙特色物联网实训室
  • 【网络安全的神秘世界】Error:Archives directory /var/cache/apt/archives/partial is missing.
  • react + pro-components + ts完成单文件上传和批量上传
  • CVE-2024-24549 Apache Tomcat - Denial of Service
  • Golang | Leetcode Golang题解之第241题为运算表达式设计优先级
  • Java面试题--JVM大厂篇之Serial GC在JVM中有哪些优点和局限性
  • 数据库建立中间表的意义
  • 【D3.js in Action 3 精译_018】2.4 向选择集添加元素
  • WordPress杂技
  • kotlin get set
  • RabbitMQ发布确认及交换机类型
  • SQL Server分布式查询:跨数据库的无缝数据探索
  • vite+vue3项目初始化搭建
  • 避免6大Python高级陷阱,让你的Python代码更优雅
  • 【Linux系统编程】快速查找errno错误码信息
  • Bootstrap JS插件Alert源码分析
  • es6--symbol
  • HTTP 简介
  • IP路由与转发
  • JavaScript 奇技淫巧
  • js中的正则表达式入门
  • Laravel Mix运行时关于es2015报错解决方案
  • PHP的Ev教程三(Periodic watcher)
  • React中的“虫洞”——Context
  • unity如何实现一个固定宽度的orthagraphic相机
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 前嗅ForeSpider中数据浏览界面介绍
  • 入门级的git使用指北
  • 小程序01:wepy框架整合iview webapp UI
  • 译米田引理
  • 与 ConTeXt MkIV 官方文档的接驳
  • 自制字幕遮挡器
  • const的用法,特别是用在函数前面与后面的区别
  • #DBA杂记1
  • (42)STM32——LCD显示屏实验笔记
  • (C语言)逆序输出字符串
  • (Java)【深基9.例1】选举学生会
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计大学生兼职系统
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (六)激光线扫描-三维重建
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)鸿鹄云架构一服务注册中心
  • (一)Thymeleaf用法——Thymeleaf简介
  • (一)基于IDEA的JAVA基础1
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)OpenStack Hacker养成指南