如何解决“ java.lang.IllegalArgumentException:预期的命名参数,但是得到了[XXXX]”

时间:2019-06-04 11:04:26

标签: java jenkins groovy jenkins-pipeline

我正在创建一个Jenkins管道,该管道将解析XML文件并返回Nuspec版本。我在将XML文件读入没有前导BOM字符(UTF-8)的变量时遇到问题,我现在尝试将文件读入变量并添加编码以使用。

我尝试使用以下文档,但是尽管进行了许多不同的尝试和不同的格式化代码方法,但仍然出现以下错误。

我尝试完全按照https://docs.oracle.com/cd/E84527_01/wcs/tag-ref/JAVA/Utilities_readFile.html

的说明操作文档

代码:

strNuspec = "test.nuspec"
echo 'Reading nuspec into string'
def xml = readFile (String, "${strNuspec}",String, "UTF-8")
println xml

和错误:

  

java.lang.IllegalArgumentException:预期的命名参数,但得到了[类java.lang.String,test.nuspec,类java.lang.String,UTF-8]

下一步:

strNuspec = "test.nuspec"
echo 'Reading nuspec into string'
def xml = readFile (strNuspec, "${strNuspec}", encoding, "${encoding}")
println xml  
  

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:找不到此类字段:字段java.lang.String test.nuspec

这只是我尝试使其工作的几次尝试。 我目前正在jenkinsfile的此部分中运行这些命令;

stage('Build')  
{  
  steps  
  {  
      script  
     {  
      Code here    
     }  
  }  

}  

我不熟悉groovy,但欢迎所有帮助。

1 个答案:

答案 0 :(得分:0)

我让它正常工作!!!!! :D:D:D

def encoding = "UTF-8"
strNuspec = "test.nuspec"

def xml = readFile file: "${strNuspec}", encoding: ${encoding}" 
println xml

这也应该起作用,但我不确定100%!
def xml = readFile file: strNuspec, encoding: encoding
希望这可以帮助遇到此问题的其他人!