Maven Deploy测试

文章目录

  • Maven
    • 环境
    • deploy
    • release
    • Repo Manager
    • 演示
  • Ref
  • FAQ

Maven

环境

  • jdk8
  • maven v3.9.5

deploy

mvn install将jar存到localRepositorymvn deploy把jar推送到远程仓库,然后可以像central库那样下载依赖。

release

基于git执行项目发版流程,版本号升级、git打标签、deploy。
见maven release

Repo Manager

演示选用dzikoysk/reposilite作为仓库管理器,使用单体jar版本启动,方便快捷
下载后在控制台执行如下

java -Xmx100m -jar repo.jar

启动log完毕后,输入help查看交互式指令来设置管理器,同时http://localhost:8080可访问,是仓库的UI界面

回到jar启动完毕结尾处,服务会响应输入的指令

token-generate admin m --secret=123456
route-add admin / rw

分别输入执行以上两行指令后,基本配置完毕

演示

  1. 项目基本结构
    <artifactId>release-test</artifactId>
    <version>1.0.3-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        <module>sub-module-1</module>
    </modules>
    
  2. maven上下文配置如下
  • settings.xml

    <server>
      <!-- Id has to match the id provided in pom.xml -->
      <id>my-domain-repository</id>
      <username>admin</username>
      <password>123456</password>
    </server>
    

    这里usename 、password就是上文指令配置的token 用户和secret密码,即admin和123456

  • pom.xml

    
    <distributionManagement>
        <repository>
            <id>my-domain-repository</id>
            <url>http://localhost:8080/releases</url>
        </repository>
        <snapshotRepository>
            <id>my-domain-repository</id>
            <url>http://localhost:8080/snapshots</url>
        </snapshotRepository>
    </distributionManagement>
    

    注意id要与settings.xml的server id一致。

  1. deploy验证
    做完前两步,在pom.xml所在目录执行mvn deploy,没有错误的话,打开前文提到的UI页面,根据pom配置的打包版本是snapshot还是release的,本项目versionSNAPSHOT,从页面进入snapshots仓库可找到构件。如下图
    在这里插入图片描述
    在这里插入图片描述

  2. release验证
    按照上文提到的release-plugin,在pom层级开始命令行。

    mvn -B clean release:prepare -DdryRun=true
    mvn -B release:prepare -DskipTests=true -DpushChanges=false
    mvn -B release:perform -DlocalCheckout=true
    

    在release的操作试验中,git tag -l查看maven执行过程中给git仓库打的标签,每一个release对应一个tag。

    命令汇总mvn -B clean release:prepare -DskipTests=true -DpushChanges=false release:perform -DlocalCheckout=true

    结果如下(摘取部分)

    输出
    [INFO] [INFO] — deploy:3.1.1:deploy (default-deploy) @ release-test —
    [INFO] [INFO] Uploading to my-domain-repository: http://localhost:8080/releases/org/test/learn/release-test/1.0.3/release-test-1.0.3.pom
    [INFO] [INFO] Uploaded to my-domain-repository: http://localhost:8080/releases/org/test/learn/release-test/1.0.3/release-test-1.0.3.pom (1.4 kB at 7.2 kB/s)
    [INFO] [INFO] Downloading from my-domain-repository: http://localhost:8080/releases/org/test/learn/release-test/maven-metadata.xml
    [INFO] [INFO] Uploading to my-domain-repository: http://localhost:8080/releases/org/test/learn/release-test/maven-metadata.xml
    [INFO] [INFO] Uploaded to my-domain-repository: http://localhost:8080/releases/org/test/learn/release-test/maven-metadata.xml (306 B at 8.7 kB/s)

    查看仓库,已在release库中
    在这里插入图片描述

  3. 引用验证
    已将构件部署到远程仓库中,现测试依赖导入是否能找到
    sub-module-1测试,因在release过程中install到本地仓库,需要删除本地的来验证后续。下图所示,要删除
    在这里插入图片描述

    创建新maven项目,添加以下配置到pom

    • 添加repo
      <repositories>
      <repository>
          <id>my-domain-repository</id>
          <url>http://localhost:8080/release</url>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>false</enabled>
          </snapshots>
      </repository>
      </repositories>
      <dependencies>
      <dependency>
          <groupId>org.test.learn</groupId>
          <artifactId>sub-module-1</artifactId>
          <version>1.0.3</version>
      </dependency>
      </dependencies>
      
    • 测试
      mvn clean compile
      在这里插入图片描述
      可以看到从仓库找到并下载sub-module-1,说明仓库可引用可部署

Ref

repository
distributionManagement
release-plugin
deploy-plugin
scm

FAQ

  1. Repo Manager 未配置token
    会有如下错误
    在这里插入图片描述
    reason phrase: unauthorized
  2. 其他的Repo Manager未测试,应该都大差不差

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/473875.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ab (Apache benchmark) - 压力/性能测试工具

Apache benchmark&#xff08;ab&#xff09; 安装window安装使用方法 - bin目录运行使用方法 - 任意目录运行 linux安装 基本命令介绍常用参数:输出结果分析&#xff1a; ab的man手册 安装 window安装 官网下载链接&#xff1a;https://www.apachehaus.com/cgi-bin/download…

鸿蒙Harmony应用开发—ArkTS-高级组件:@ohos.arkui.advanced.Chip(操作块组件)

操作块&#xff0c;用于搜索框历史记录或者邮件发送列表等场景。 说明&#xff1a; 该组件从API Version 11开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 Chip Chip({options:ChipOptions}) 装饰器类型&#xff1a;Builde…

软考高级:软件架构风格-数据流风格概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

用户登录项目JAVA简单实现

1、“zhangsan”.equals&#xff08;userName&#xff09; 把常量放在前面是为了防止空指针、 2、session不用我们担心会不会空指针&#xff0c;如果为null会为我们创建个空的session 3、网页清缓存 &#xff08;1&#xff09;ctrlF5 &#xff08;2&#xff09;ctrlshiftdel…

FPGA学习_时序分析

文章目录 前言一、组合逻辑与时序逻辑二、建立时间和保持时间三、建立时间和保持时间 前言 心中有电路&#xff0c;下笔自然神&#xff01;&#xff01;&#xff01; 一、组合逻辑与时序逻辑 组合逻辑&#xff1a;没有时钟控制的数字电路&#xff0c;代码里的判断逻辑都是组…

浅析扩散模型与图像生成【应用篇】(九)——UNIT-DDPM

10. UNIT-DDPM: UNpaired Image Translation with Denoising Diffusion Probabilistic Models 该文提出一种基于DDPM的非配对的图像转换方法&#xff0c;称为UNIT-DDPM&#xff0c;能够实现源域的图像到目标域图像的转换&#xff0c;在保留原有图像内容的同时&#xff0c;转换为…

现货黄金做对冲的具体方法

现货黄金做对冲的具体方法是运用金融衍生工具和策略&#xff0c;以减轻或消除持有现货黄金所面临的市场风险。具体而言&#xff0c;投资者可通过期货合约、期权、掉期等金融工具来实现对冲&#xff0c;保障其投资价值不受金价波动的负面影响。 &#xfeff; 期货合约在对冲中…

让数据在两个buckets之间传输 - Google Storage Transfer Service

在业务场景中&#xff0c; 有时我们不想直接暴露数据存储空间给上游系统&#xff0c; 而需要设置1个landing Path 让上游系统发送数据 如图&#xff1a; 我们只需grant landing bucket 的权限给上游系统&#xff0c; 而上游系统是访问不了storage bucket的保证了数据隔离 但是…

vue3与Electron构建跨平台应用(webpack)

一、创建vue3项目 vue create vue3_webpack_electron 二、安装Electron npm install --save-dev electron Electron 三、vue add electron-builder vue add electron-builder

RK3568平台开发系列讲解(pinctrl篇)pinctrl 子系统函数操作集

🚀返回专栏总目录 文章目录 一、pinctrl_ops二、pinctrl_ops三、pinconf_ops沉淀、分享、成长,让自己和他人都能有所收获!😄 在 pinctrl_desc 结构体中总共有三个函数操作集, 具体内容如下所示: const struct pinctrl_ops *pctlops; // 引脚控制操作函数指针 const

【机器学习】基于萤火虫算法优化的BP神经网络分类预测(FA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】萤火虫算法&#xff08;FA&#xff09;原理及实现 2.设计与实现 数据集&#xff1a; 多输入多输出&#xff1a;样本特征24&#xff0c;标签类别4。…

html常见标签

width宽度 height高度 border边框 1px&#xff08;边框线条宽度&#xff09; solid&#xff08;实线&#xff09; red&#xff08;红色&#xff09; border-radius: 100px 边框圆角 background-color&#xff1a;red&#xff08;背景颜色为红色&#xff09; margin&#xf…

STL_list文档使用介绍与底层代码实现简介

文章目录 list介绍list的使用构造函数&#xff08;constructor&#xff09;迭代器list capacitylist modify&#xff08;修改&#xff09;其他接口函数list迭代器失效问题 list实现基础框架(节点类&#xff09;基础框架&#xff08;迭代器类&#xff09;基础框架&#xff08;链…

提供数字免疫力:采取整体方法来优化您的网络

采用数字技术已成为许多美国企业的关键竞争优势&#xff0c;导致其在与新部署的云解决方案的安全连接方面的投资不断增加。然而&#xff0c;随着越来越多的关键应用程序迁移到云端&#xff0c;公司保护其敏感数据和资源变得更具挑战性&#xff0c;因为这些资产现在超出了内部防…

uniapp——第3篇:自定义组件、组件间传数据

前提&#xff0c;建议先学会前端几大基础&#xff1a;HTML、CSS、JS、Ajax&#xff0c;还有一定要会Vue!&#xff08;Vue2\Vue3&#xff09;都要会&#xff01;&#xff01;&#xff01;不然不好懂 一、组件是啥玩意&#xff1f; 我之前讲vue2的文章讲过 Vue全家桶:vue2vue3全…

Python通过Ctypes调用C++类,实测有效

文章目录 前言创建vs dll工程添加外部库编辑代码编译测试参考 前言 在软件开发中&#xff0c;有时候需要Python与C相结合&#xff0c;以充分发挥两者的优势 。Python作为一种高级编程语言&#xff0c;具有简洁易读的特点&#xff0c;适用于快速开发和原型设计。而C则是一种性能…

小程序绕过 sign 签名

之前看到了一篇文章【小程序绕过sign签名思路】之前在做小程序渗透时也遇到了这种情况&#xff0c;但是直接放弃测试了&#xff0c;发现这种思路后&#xff0c;又遇到了这种情况&#xff0c;记录下过程。 并没有漏洞分享&#xff0c;仅仅是把小程序也分享出来&#xff0c;方便…

上位机图像处理和嵌入式模块部署(qmacvisual轮廓查找)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;图像的处理流程一般都是这样的&#xff0c;即灰度化-》降噪-》边缘检测-》二值化-》开闭运算-》轮廓检测。虽然前面的几个…

AI开源概览及工具使用

一、前言 随着ChatGPT热度的攀升&#xff0c;越来越多的公司也相继推出了自己的AI大模型&#xff0c;如文心一言、通义千问等。各大应用也开始内置AI玩法&#xff0c;如抖音的AI特效&#xff1b; 关联资源&#xff1a;代码 GitHub、相关论文、项目Demo、产品文档、Grok Ai、gr…

多数据源 - dynamic-datasource | 进阶 - 动态添加、移除数据源

文章目录 实现原理示例程序🗯️ 上节回顾:前节中,了解了 dynamic-datasource 的事务支持。 👉 本节目标:了解 dynamic-datasource 的进阶用法 - 动态添加/移除数据源。 动态添加/移除数据源:指在系统运行过程中动态的添加数据源,删除数据源,多使用于基于数据库的多租…