Groovy脚本在项目的基础上动态传递参数标记值
配置后,值中的@被编码,我想避免
似乎在参数之间传递值时,Active Choice使用HTML编码进行转换,您可以看到所有将使用jenkins的/script端点更改的值,代码如下:-
import static org.apache.commons.lang.StringEscapeUtils.escapeHtml
'!@£$%^&*()_+€-={}[]:"|;'\<>?,./~'.each {
println "$it -> ${escapeHtml( it )}"
}
! -> !
@ -> @
£ -> £
$ -> $
% -> %
^ -> ^
& -> &
* -> *
( -> (
) -> )
_ -> _
+ -> +
€ -> €
- -> -
= -> =
{ -> {
} -> }
[ -> [
] -> ]
: -> :
" -> "
| -> |
; -> ;
' -> '
->
< -> <
> -> >
? -> ?
, -> ,
. -> .
/ -> /
~ -> ~
我使用org.apache.commons.lang.StringEscapeUtils.unescapeHtml类解决了这个问题。
您可以使用以下代码片段转换接收到的参数:-
import static org.apache.commons.lang.StringEscapeUtils.unescapeHtml
String unEscapedString = "a & b"
String escapedHTML = unescapeHtml(unEscapedString)
print(escapedHTML)
这将打印一个&b,这是代码所期望的。