
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 |