得到一个奇怪的错误,我在文档中找不到很多会导致它的错误。我正在一个管道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。