Jenkins Pipeline Groovy Map被强制转换为String

时间:2018-02-15 21:46:53

标签: java groovy jenkins-pipeline

得到一个奇怪的错误,我在文档中找不到很多会导致它的错误。我正在一个管道groovy lib中返回一个Map,它被转换为String。

hudson.remoting.ProxyException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'VERSION=1.0.2n.6.2.194
RELEASE=1
EPOCH=10
SOURCE_BASE_URL=https://artifactory-instance1
' with class 'java.lang.String' to class 'java.util.Map'

导致问题的代码:

def getVersion() {
    def utils = new Utils()
    //Appears error is here, cast exception from trying to store String to Map
    Map propertiesMap = utils.readPropertiesFileToMap('build.properties', pipelineScript)
    propertiesMap['VERSION'] + "-" + propertiesMap['RELEASE']
}

在Utils类中:

@NonCPS
Map readPropertiesFileToMap(filepath, pipelineScript) {
  Map map = [:]
  def content = pipelineScript.readFile 'build.properties'
  Properties properties = new java.util.Properties()
  InputStream is = new ByteArrayInputStream(content.getBytes())
  properties.load(is)

  Enumeration propertyNames = properties.propertyNames()
  while (propertyNames.hasMoreElements()) {
    String key = propertyNames.nextElement()
    String value = properties.getProperty(key)
    map.put(key, value)
  }
  assert map instanceof Map
  return map
}

目前没有任何东西可以跳出来。第一次尝试时,我使用了一个Properties对象并试图返回它,遇到同样的问题所以我去了一个得到大力支持但仍然看到问题的Map。

0 个答案:

没有答案