pom.xml:
<a-api>1.0.0</a-api>
<b-api>1.0.0-test-SNAPSHOT</b-api>
想把'<b-api>1.0.0-test-SNAPSHOT</b-api>'替换成'<b-api>1.0.0</b-api>' 然后我写了这么个正则:
sed -i -s 's/-(.*?)-SNAPSHOT<\/b-api>/<\/b-api>/'
但是匹配到的是'-api>1.o-test-SNAPSHOT</b-api>',最先匹配原则覆盖了最短匹配. 另外一个思路是先匹配到对应的 tag,里面的 version 根据分隔符'-'切割成三部分,判断第三部分是否为 SNAPSHOT,若是则把第二部分和第三部分删掉. 但是不会写对应的正则,大家有什么好的想法吗?
1
Euthpic OP pom 的格式是<project>version-branch-SNAPSHOT</project>,要替换成<project>version</project>
|
2
0ZXYDDu796nVCFxq 2021-05-26 23:18:48 +08:00
`sed -i 's/-test-SNAPSHOT//g' pom.xml`
|
4
fannas 2021-05-27 01:35:12 +08:00 via iPhone
我猜你打算 cicd 做 release 。可以用 agent 注入版本号哈
|
5
oott123 2021-05-27 07:50:32 +08:00 via Android
你把 <b-api> 也加进去不就完了。。
|
6
hexiaowu1993 2021-05-27 14:11:35 +08:00
这个有插件的,尽量别自己写正则。
idea 搜索 maven version 插件 或者是在 maven plugins 引入 versions-maven-plugin |
7
he1a2s0 2021-05-28 03:16:05 +08:00
branch 里面没有-的话,可以简单的把 (.*?) 换成 [^-]\+
|
8
acr0ss 2021-05-31 12:57:57 +08:00
若 version 由 \w (字母数字下划线) 构成,则可如此匹配:
(-\w+)?-SNAPSHOT |