2016-07-18 18 views
1

私はJenkinsを使用していて、名前が "_TEST"で終わるすべてのビルド可能ジョブに一致させたいが、regexで一致させることはできない。groovyを使用して文字列の末尾に一致させる

私はいくつかの方法を試しましたが、groovyで一致させることができませんでした。

+1

では、あなたが試したコードを追加することはできますか?それはあなたの質問に正確に答えるために多くの助けになります。 –

+0

正規表現またはGroovy?彼らは同じものではありません! [Regex](https://en.wikipedia.org/wiki/Regular_expression)は、文字列検索/比較を行うための式構文です。 [Groovy](http://www.groovy-lang.org/)は完全なプログラミング言語です。 – Andreas

+0

groovyスクリプト内で正規表現を使用し始めました。後でensWith()関数を実行して、それが私のために働いた。 – Kithral

答えて

1

同等の、しかしthis oneよりもはるかに簡潔な解決策が

import hudson.model.* 

def list = Hudson.instance 
       .items 
       .findAll { it.buildable && it.name.endsWith("_TEST") } 
       .collect { it.name } 
+0

私はその単純さが好きです。私はちょうど私に仕事の名前を与えるためにそれを得ることができますか? [email protected] [Build_Job_TEST] – Kithral

+0

新しい答えを書くのではなく、このオブジェクトを編集して 'collect'を使って各オブジェクトをその名前に変換します。書式設定は、スタックオーバーフローのコードを説明するために少し奇妙であり、必ずしも慣用的ではありません。 –

0

実際に私の問題の周りでは別の方法が見つかった。申し訳ありませんが、月曜日の朝:)

import hudson.model.* 

def list = [] 

for (item in Hudson.instance.items.findAll()) { 
    if (item.name.endsWith("_TEST")) { 
    if (item.isBuildable()) { 
     list.push(item.name) 
    } 
    } 
} 

return list 
+3

"groovy way": 'Hudson.instance.items.findAll {it.isBuildable()&& it.name.endsWith(" _ TEST ")}' –

関連する問題