过滤器快照版本

Filter Snapshot Version

我正在使用 jenkins、gitlab 和 nexus 开发 maven 项目。我可以编写一个脚本来拍摄快照版本而不使用 maven 帮助插件吗?

<version>0.0.1-SNAPSHOT</version>

我需要这样的输出。

0.0.1-SNAPSHOT

如果您的 maven POM 文件如下所示

cat config.pom
<project>
  <version>0.0.1-SNAPSHOT</version>
</project>

您应该使用 XML 感知解析工具,例如 xmlstarlet(而不是面向文本的工具,例如 sedawk)来提取版本字符串:

xmlstarlet sel -t -v "project/version" -n config.pom

-t : 模板
-v : 提取 xpath 的值 project/version
-n : 添加新行

这是无需任何其他工具即可完成的方法:

grep -ri "<version>" /tmp/config.pom |head -n 1 |sed -e 's/^[ \t]*<version>\([^<]*\)<.*$//'

你只需要修改/tmp/config.pom路径即可。