过滤器快照版本
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
(而不是面向文本的工具,例如 sed
、awk
)来提取版本字符串:
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路径即可。
我正在使用 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
(而不是面向文本的工具,例如 sed
、awk
)来提取版本字符串:
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路径即可。