我正在使用jenkins,gitlab和nexus进行Maven项目。我可以编写脚本来获取快照版本而不使用Maven帮助插件吗?
<version>0.0.1-SNAPSHOT</version>
我需要这样的输出。
0.0.1-SNAPSHOT
答案 0 :(得分:1)
如果您的Maven POM文件如下所示
cat config.pom
<project>
<version>0.0.1-SNAPSHOT</version>
</project>
您应使用xmlstarlet
之类的XML感知解析工具(而不是sed
,awk
之类的面向文本的工具)来提取版本字符串:
xmlstarlet sel -t -v "project/version" -n config.pom
-t
:模板
-v
:提取xpath project/version
的值
-n
:添加新行
答案 1 :(得分:-2)
这是无需任何其他工具即可完成的方式:
const arr = [
{user: 'Alex', date: '1540801929945'},
{user: 'Bill', date: '1640801929946'},
{user: 'Carl', date: '1740801929947'},
{user: 'Alex', date: '1840801929948'},
{user: 'Carl', date: '1340801929947'},
];
const arrByUser = arr.reduce((a, { user, date }) => {
if (!a[user]) a[user] = date;
else if (a[user].localeCompare(date) === 1) a[user] = date;
return a;
}, {});
const output = Object.entries(arrByUser)
.map(([user, date]) => ({ user, date }));
console.log(output);
您只需要调整 /tmp/config.pom 路径。