作者:mobiledu2502860153 | 来源:互联网 | 2023-08-11 12:26
篇首语:本文由编程笔记#小编为大家整理,主要介绍了脚本在Windows中运行但在Jenkins中失败相关的知识,希望对你有一定的参考价值。
我有一个bash脚本:
C:/Jenkins/workspace/xmlstarlet-1.6.1-win32/xmlstarlet-1.6.1/xml.exe ed -L -s "/Package/types[name='$TYPENAME']" -t elem -n members -v "$ENTITY" $SCRIPTFILE
C:/Jenkins/workspace/xmlstarlet-1.6.1-win32/xmlstarlet-1.6.1/xml.exe ed -L -s "/Package" -t elem -n types -v "" $SCRIPTFILE
在xml中插入特定类型的节点,这在本地运行正常,但是当尝试通过任何脚本运行时它会失败:
Ant脚本:
错误消息:无效的表达式:C:/ Program Files / Git / Package
它无法选择/Package
或/Package/types[not(*)]
表达。
答案
问题是:
在Windows上,bash脚本的工作原理如下:
$ C:/Jenkins/workspace/xmlstarlet/xmlstarlet/xml.exe ed -L -i "Package" -t attr -n xmlns -v "http://soap.sforce.com/2006/04/metadata" C:/Jenkins/workspace/deploy/src/package.xml
而不是这个:
$ C:/Jenkins/workspace/xmlstarlet/xmlstarlet/xml.exe ed -L -i '/Package' -t attr -n xmlns -v "http://soap.sforce.com/2006/04/metadata" C:/Jenkins/workspace/deploy/src/package.xml
在Windows中,/Package
不被很好地识别。