詹金斯主动选择参数不理解"@"符号并对其进行编码。如何在构建命令中将其作为参数传递时对其进行解码?



Groovy脚本在项目的基础上动态传递参数标记值

配置后,值中的@被编码,我想避免

似乎在参数之间传递值时,Active Choice使用HTML编码进行转换,您可以看到所有将使用jenkins的/script端点更改的值,代码如下:-

import static org.apache.commons.lang.StringEscapeUtils.escapeHtml
'!@£$%^&*()_+€-={}[]:"|;'\<>?,./~'.each {
println "$it -> ${escapeHtml( it )}"
}

! -> !
@ -> @
£ -> &pound;
$ -> $
% -> %
^ -> ^
& -> &amp;
* -> *
( -> (
) -> )
_ -> _
+ -> +
€ -> &euro;
- -> -
= -> =
{ -> {
} -> }
[ -> [
] -> ]
: -> :
" -> &quot;
| -> |
; -> ;
' -> '
 -> 
< -> &lt;
> -> &gt;
? -> ?
, -> ,
. -> .
/ -> /
~ -> ~

我使用org.apache.commons.lang.StringEscapeUtils.unescapeHtml类解决了这个问题。

您可以使用以下代码片段转换接收到的参数:-

import static org.apache.commons.lang.StringEscapeUtils.unescapeHtml
String unEscapedString = "a &amp; b"
String escapedHTML = unescapeHtml(unEscapedString)
print(escapedHTML)

这将打印一个&b,这是代码所期望的。

最新更新