私はいくつかのマップを追加し、私のパイプラインでシンプルなグルーヴィーなリストがあります:反復処理グルーヴィーリスト
def componentList = []
def componentMapEntry1 = [:]
componentMapEntry1['componentName']="Dashboard_Core"
componentList << componentMapEntry1
def componentMapEntry2 = [:]
componentMapEntry2['componentName']="Dashboard_Equities"
componentList << componentMapEntry2
def cme3 = [:]
cme3["componentName"] = "home"
componentList << cme3
ジョブが実行されると、私はサイズ
echo "size of list "+componentList.size()
を検証し...
[Pipeline] echo
size of list 3
私はリスト
を、それをプリントアウトすることができますprintln componentList
...
[Pipeline] echo
[{componentName=Dashboard_Core}, {componentName=Dashboard_Equities}, {componentName=home}]
私は、forループを行うと、リストに
for (i = 0; i <componentList.size(); i++) {
println componentList[i]
}
を反復することができます...
[Pipeline] echo
{componentName=Dashboard_Core}
[Pipeline] echo
{componentName=Dashboard_Equities}
[Pipeline] echo
{componentName=home}
これまでのところ、すべてがうまくです。私は最初の要素だけ
[Pipeline] echo
adding Dashboard_Core
を取得この場合
componentList.each {
println "adding "+it.componentName
}
なぜ私はここに最初の要素になるだろう:
問題は、私は、標準のグルーヴィーなイテレータを使用しようとしていますか?私はこれを数回試して、.each()を使うと最初の要素だけを返すようです。 Groovyコマンドラインで同じコードを実行すると、当然iterates as groovy would expectとなります。 .each {}関数は何とか上書きされますか?
私は疑問に思っています: '[[componentName: 'Dashboard_Core']、[componentName: 'Dashboard_Equities']、[componentName: 'home']] each {println" $ it.componentName "}'期待どおりに働く? '['Dashboard_Core'、 'Dashboard_Equities'、 'home']はどうですか?{{componentName:it}} .each {println" $ it.componentName "}'を追加しますか? –
最初のものはありません、それは私のように最初の要素だけを示しています。 サンドボックス環境で2番目のものが失敗します。 org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:未分類のフィールドjava.util.LinkedHashMap $ Entryコンポーネント名 – Neil
サーバー上のGroovyのバージョンは何年ですか?私のお金は古代のものです... –