【问题标题】:Parsing file name for Dynamic Choice Parameter in Jenkins with a Groovy script使用 Groovy 脚本在 Jenkins 中解析动态选择参数的文件名
【发布时间】:2014-01-23 00:06:07
【问题描述】:

我正在尝试为 Jenkins 作业生成一个下拉菜单,该作业将从 Linux 目录中的文件名中解析出版本号。我已经让它大部分工作了,但我认为我对 groovy 的缺乏了解让我陷入了停顿。这是我的代码:

Arrays.asList(new File("/path/to/files").list().join(", ").findAll(/(\d+)\.(\d+)\.(\d+)\.(\d+)/))

我的文件名看起来像:

  • 返回?-?1.0.0.19?.war
  • 返回?-?1.0.0.20?.war

我从 Jenkins 脚本控制台得到的回报是:

结果:[[1.0.0.19, 1.0.0.20]]

这基本上是我想要的,但在 Jenkins 工作中,我在下拉列表中得到一个项目,即外括号内的所有内容。

[1.0.0.19, 1.0.0.20]

我认为第二组括号是问题所在,我尝试使用 Groovy 的 .minus() 方法删除它们,两次转义括号,但没有运气。我也尝试过 .split() 方法,但没有成功。

任何帮助将不胜感激!

【问题讨论】:

    标签: linux parsing groovy jenkins jenkins-plugins


    【解决方案1】:

    您不需要Arrays.asList()。下面应该足够了。

    new File("/opt/staples/ci-tools/workspace/archive/returns")
                  .list()
                  .join(',')
                  .findAll(/(\d+)\.(\d+)\.(\d+)\.(\d+)/)
    

    【讨论】:

    • 效果很好!谢谢!我也在末尾添加了一个 .sort() ,以便于查看。
    • @Steak054 你能accept the answer吗?
    猜你喜欢
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2017-01-01
    • 2015-06-21
    相关资源
    最近更新 更多