2014-01-23 73 views
0

我正在嘗試爲Jenkins作業生成一個下拉列表,用於解析出Linux目錄中文件名的版本號。我已經完成了大部分的工作,但是我認爲我缺乏對常規的瞭解讓我停滯不前。下面是我的代碼有:使用Groovy腳本解析Jenkins中動態選擇參數的文件名

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

,我的文件名看起來像:

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

我能得到什麼從詹金斯腳本控制檯回報是:

結果:[1.0.0.19,1.0.0.20]

這基本上是我想要的,但在詹金斯的工作,我在下拉即外括號內的一切得到一個項目。

[1.0.0.19,1.0.0.20]

我認爲第二組括號是問題,我試圖刪除它們使用Groovy的.minus()方法,雙重逸出括號,沒有運氣。我也嘗試了.split()方法,但沒有運氣。

任何幫助將不勝感激!

回答

0

你不需要Arrays.asList()。下面應該足夠了。

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

這很奇妙!謝謝!我也添加了一個.sort(),以便更容易查看。 – Steak054

+0

@ Steak054你可以[接受答案](http://meta.stackexchange.com/a/5235/156393)? –