筛选快照版本

时间:2018-10-29 08:58:30

标签: linux bash maven jenkins nexus

我正在使用jenkins,gitlab和nexus进行Maven项目。我可以编写脚本来获取快照版本而不使用Maven帮助插件吗?

<version>0.0.1-SNAPSHOT</version>

我需要这样的输出。

0.0.1-SNAPSHOT

2 个答案:

答案 0 :(得分:1)

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

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

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

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 路径。