从变量更新 pom 文件的 Shell 命令

2023-12-11

以前,我使用以下命令获取 pom.xml 中的版本并将其从 1 递增。在增量快照版本之前,0.0.1

#!/bin/bash

version=$(grep -ri "<version>" pom.xml |head -n 1 | sed -e 's/^[ \t]* 
<version>\([^<]*\)<.*$/\1/' | sed 's/[-SNAPSHOT]//g')
var1=$(echo $version | cut -c1)
var2=$(echo $version | cut -c2)
var3=$(echo $version | cut -c3)
var4=$(echo $version | cut -c4)
var5=$(echo $version | cut -c5)
var5=$((var5+1))
incrementVer=$var1$var2$var3$var4$var5
echo $incrementVer

output is 0.0.2

但我想将此输出推送到 pom 文件并更新为,<version>0.0.2</version>

我可以使用 sed 命令来更新 pom 文件吗?

我的 pom 文件看起来像这样,

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.mss.inven</groupId>
<artifactId>INVEN</artifactId>
<version>0.0.1-SNAPSHOT</version>

通过以下方式将版本设置为特定值的简单解决方案版本-maven-插件

mvn versions:set -DnewVersion=0.0.1

如果你想增加它。这可以通过使用来实现构建助手 maven 插件像下面这样:

mvn build-helper:parse-version versions:set \
     -DnewVersion=\${parsedVersion.nextMajorVersion}.0.0 \
     versions:commit

或者如果您想增加次要版本:

mvn build-helper:parse-version versions:set \
 -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.nextMinorVersion}.0 \
 versions:commit

或者如果您想增加补丁版本:

mvn build-helper:parse-version versions:set \
 -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion} \
 versions:commit

您需要注意 Windows/Linux 上需要的引用。

或者你可以使用maven-发布-插件只需调用以下命令即可将当前版本增加到下一个版本:

mvn -B release:update-versions

或者你通过通常的发布过程使用maven-release-pluginmvn release:prepare release:perform默认情况下也会增加版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从变量更新 pom 文件的 Shell 命令 的相关文章

  • 如何重命名 bash 函数?

    我正在围绕另一个定义 bash 函数的软件包开发一些方便的包装器 我想用我自己的同名函数替换他们的 bash 函数 同时仍然能够从我的函数中运行他们的函数 换句话说 我需要重命名它们的函数 或者为其创建某种持久别名 当我创建同名函数时 该别
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 使用 grep 查找所有匹配的模式

    In txt1 S01A1P2 S01A1P5 S01A1P4 In txt2 data train wave S01A1P3 mfc data train wave S01A1P7 mfc data train wave S01A1P8
  • exec()、shell_exec()、curl_exec() 的安全漏洞

    有时 我会使用 exec shell exec 和curl exec 以下是典型用途 假设其中有 PHP 变量 即第一个变量中的 html 用户有可能修改其内容 从安全漏洞的角度来看 我应该关注什么 escapeshellcmd 和 esc
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • 不要将变量内容视为 sed 中的特殊字符

    我有以下内容sed命令 sed i 4i CHANGES CHANGELOG rst 然而 我的 CHANGES变量看起来像这样 title list elem elem 因此 上述命令失败并出现以下错误 sed e expression
  • Bash touch - 非法选项 -d

    昨天我拍了很多照片 但我忘记更改相机中的时区 现在所有图片的修改日期都有错误 我想将特定目录中所有文件的修改日期更改为minus 10 hours bin sh for i in Users slick Desktop 100D5200 d
  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • 在嵌入式系统上将内核控制台发送到哪里?

    我正在开发一个嵌入式系统 该系统当前通过串行端口 1 上的控制台输出启动 Linux 使用启动加载程序中的控制台启动参数 然而 最终我们将使用这个串行端口 内核控制台输出的最佳解决方案是什么 dev null 能否以某种方式将其放在 pty
  • android gradle插件-离线安装

    我必须在离线电脑上安装 android gradle 插件 通过谷歌搜索 我了解到我可以通过本地 Maven 存储库来做到这一点 但从不成功的尝试和所有关于这个问题的质量保证中我知道这并不简单 我从来没有和maven一起工作过 有经验的人可
  • 使用 IFS bash 进行 CSV 解析:选择“;”作为分隔符

    我有一个包含 130 列的 CSV 我需要用它来做 3 个 csv 我用 while 和 IFS 循环 因为我需要对每一行的变量进行一些处理 这是我所做的 while IFS read my 130 vars what i do with
  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • 捕获并邮寄 bash 脚本错误

    我有一个脚本 每晚在 cron 中运行 为网络上的多个主机备份一些 postgres 数据库 我有一种方法可以通过利用退出状态来收到脚本失败的警报 但它没有告诉我失败的原因 根据以下代码 我如何捕获脚本运行时发生的任何错误 并将其通过电子邮
  • Maven:命令行下载pom.xml中描述的依赖项

    我想知道maven命令行下载pom xml中描述的依赖项 是这样的 mvn dependency copy dependencies Try the 依赖 离线 http maven apache org plugins maven dep
  • 在cmake中集成bash测试脚本

    我有一个 C cmake 项目 它使用 Boost Test 进行单元测试 现在我想向 cmake 公开一系列 bash 脚本 用于集成测试 假设每个脚本在以下情况下返回 0PASS或某些情况下 0FAILURE 我希望每次运行时都执行每个
  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • 从 CLI 部署 Maven 项目?

    在 IDE 中构建并运行良好 cd home thufir NetBeansProjects HelloMaven JAVA HOME usr lib jvm java 8 openjdk amd64 home thufir local s

随机推荐

  • 使用facet_grid时在ggplot2中指定自定义误差线

    我使用数据创建了多个条形图stat summary 但是 我想手动指定误差线的限制 而不是使用mean cl boot 对于使用图形绘制的数据如何做到这一点facet grid 我用来创建图表的代码如下 graph lt ggplot sl
  • 在打开的浏览器中更改 URL 的批处理文件

    我见过这样的事情 start d C Program Files Internet Explorer x86 IEXPLORE EXE www google com 但这只是打开一个新选项卡 我希望它将打开的任何网站更改为列出的网站 最终目
  • LsaEnumerateAccountRights 始终返回“找不到文件”

    我正在调用 Advapi32 dll LsaEnumerateAccountRights 函数 该函数具有来自 LsaOpenPolicy 的策略句柄和来自 LookupAccountName 的帐户 SID 但是 尽我所能 我总是返回 0
  • 如何在 C++ Win32 GUI 中为文本框设置默认背景(灰色)文本?

    创建文本框时 hwnd CreateWindowEx 0 EDIT 如何在该框的背景上设置占位符 默认 灰色 文本 在提供一些输入时该文本会消失 创建编辑控件后 发送EM SETCUEBNER给它留言 SendMessage hwndEdi
  • Firebase 计算父级的子级数

    我正在尝试获取 js firebase 中父节点的子节点数量 我想要 user Yuna99s993m count 1 Yada99s993m count 2 我正在创建一个云函数 每次输入新节点时 它都应该添加等于用户节点 numChil
  • 将 @ManagedBean 切换到 @Named 后:javax.el.PropertyNotFoundException:目标无法访问,标识符“person”解析为 null [重复]

    这个问题在这里已经有答案了 我只是测试这个 JSF 页面 所以我没有设置action属性中的
  • Android 上的 Pygame

    我想知道是否有人可以给我详细解释如何在 Android 手机上运行使用 Pygame 开发的游戏 应用程序 我最近完成了 PacMan 的编程 它在我的电脑上运行得很好 但我认为如果我能让它在我的手机上运行那就太棒了 我尝试按照以下说明进行
  • 如何检查错误的日期时间条目(python/pandas)?

    我有一个 Excel 数据集 其中包含员工输入的工作时间的日期时间值 现在快到年底了 他们想报告一下 但里面充满了错误的条目 因此我需要清理它 以下是一些错误条目的示例 面对这样的数据集你会采取什么方法 我首先使用将日期列转换为日期时间df
  • 从车牌中删除额外的像素/线

    我正在使用基于 SVM 分类的 HOG 特征检测器 我可以成功提取车牌 但提取的车牌除了车牌号外还有一些不必要的像素 线 我的图像处理流程如下 在灰度图像上应用 HOG 检测器 裁剪检测到的区域 重新调整裁剪图像的大小 应用自适应阈值来突出
  • 反应中带有 Tailwind 的动态类名

    我正在制作简单的 todo 项目来提高我的反应技能 其中之一是选择任务卡的颜色 但我不明白为什么我的方法不起作用 这里的code import React from react const TaskCard React FC gt let
  • 对 Base::object 链接器错误 @ c++ w/ freeglut 的未定义引用

    我有这个代码 Gnome cpp 文件 include Living h class Gnome public Living private public Gnome void drawObjects Gnome Gnome spriteI
  • 以编程方式更改 GridView 中的 ImageView

    我已经设置了带有 TextView 叠加层的 ImageView 网格 我的ImageAdapter代码如下 public View getView int position View convertView ViewGroup paren
  • 文字肖像可视化[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我停了下来 看到了这个可视化 它被称为文字肖像 我的问题是 如何做这样的事情 有描述这个的教程或论文吗 我从来没有见过这个 但我过去做过位图到 ASCII 艺术转换器 这是类似的
  • Swift 函数在应用程序中有效,但在 override func viewDidLoad() 中无效

    在我的 iOS 应用程序中 我有两个与 Firebase 相关的函数 我想在 viewDidLoad 中调用它们 第一个随机选择一个孩子 queryOrderedByKey 并将孩子的密钥作为字符串输出 第二个使用该密钥并且observeE
  • 将 Powershell.exe 的输入和输出重定向到 C++ 中的管道

    我正在尝试在 C 中执行 powershell 命令并通过管道获取其输出 我的程序非常适合 cmd exe 但是 当我尝试使用 powershell exe 执行相同的操作时 我只得到 W 作为输出 我已经注释了下面代码中需要修改才能执行
  • 在 asp.net 中动态调整图像大小

    为简单起见 假设我有一个网页需要显示图像的缩略图 图像位置存储在数据库中 图像存储在 Amazon S3 上 是否可以让我的网络服务器在将大图像传送到客户端之前缩小其尺寸 这样我就不必存储每个图像的缩略图 并且客户端可以下载较小的文件 关于
  • 如何在JNI中将指针从java传递到C?

    我有一个本机方法int sum int int 我如何从java端传递这个方法的参数 编辑 我成功运行的示例方法是 双 gsl stats mean doubleArray int int 这个方法在 GSL 中可用 因为我已经创建了共享对
  • Unicode (utf-8) 与 git-bash

    我在让 unicode 适用于 git bash 在 Windows 7 上 时遇到一些麻烦 我尝试了很多事情但没有成功 虽然 我不太确定造成这种情况的原因 所以我可能在错误的方向上工作 看来这应该是可能的 因为 cmd exe 的编码可以
  • PropertyAccessException:访问字段时出错

    我有一个实体User Entity public class User implements Serializable Id GeneratedValue strategy GenerationType IDENTITY Column na
  • 从变量更新 pom 文件的 Shell 命令

    以前 我使用以下命令获取 pom xml 中的版本并将其从 1 递增 在增量快照版本之前 0 0 1 bin bash version grep ri