在我的Jenkins管道中,我有一个Groovy列表,作为Map中的值,我想将完整列表传递给Python脚本。但是,只传入列表的第一个元素,而不是完整列表。
我的地图orderedScripts
包含1到11之间的键值,这些键的值是列表。
Groovy代码
orderedScripts.each { key, value ->
echo "${value}"
bat "C:\\Python25\\python.exe D:\\CI2\\App.py ${value}"
}
Python代码
import sys
scripts_list = sys.argv[1]
print scripts_list
输出(只能看到列表的第一个元素)
[C:\Program Files (x86)\Path\To\Script\myapp.sql,
我注意到它在第一个到达第一个逗号后停止,并且没有附加右侧括号来完成列表。
从python print语句中我可以看到列表没有正确传递,但是当我传入Groovy中的${value}
列表
**编辑**
来自orderedScripts.dump()的输出
<java.util.LinkedHashMap@79d8b367 head=8=["C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\available_positions_api.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\core_document_utility.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreDBA\0.DBA\8.Packages\codb_email_to_core.bod"] tail=8=["C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\available_positions_api.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\core_document_utility.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreDBA\0.DBA\8.Packages\codb_email_to_core.bod"] accessOrder=false table=[8=["C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\available_positions_api.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\core_document_utility.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreDBA\0.DBA\8.Packages\codb_email_to_core.bod"], null] entrySet=[8=["C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\available_positions_api.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreAPI\0.DBA\8.Packages\core_document_utility.pak", "C:\Program Files (x86)\Jenkins\jobs\CI2\workspace\Core\Core\CoreDBA\0.DBA\8.Packages\codb_email_to_core.bod"]] size=1 modCount=1 threshold=1 loadFactor=0.75 keySet=null values=null>