我正在使用maven + gmaven插件从Nexus repo中检索一些信息。我正在做的是检索内部版本号并尝试将MAVEN
属性设置为此值:
def artifactInfo = new XmlSlurper().parseText(version)
def buildNumber = artifactInfo.data.snapshotBuildNumber
println buildNumber
project.properties.setProperty('nexus.buildnumber', buildNumber+1)
println version
但由于某些原因,我在启动时遇到以下错误:
[ERROR] Failed to execute goal org.codehaus.gmaven:gmaven-plugin:1.5:execute (default)
on project webclient-installer: groovy.lang.MissingMethodException: No signature of
method: org.codehaus.gmaven.plugin.execute.GroovyMavenProjectAdapter$
EvaluatingProperties.setProperty() is applicable for argument types: (java.lang.String,
groovy.util.slurpersupport.NodeChildren) values: [mybuildnumber, 134] -> [Help 1]
有人知道我做错了什么,以及为什么像setProperty()
那样适用于他人的直接功能在我的情况下不起作用?
提前感谢您的帮助和解释!
P.S。看来我有旧的gmaven或只存在setProperty(String,NodeChildren)的东西。
答案 0 :(得分:1)
artifactInfo.data.snapshotBuildNumber
等GPath表达式的类型为groovy.util.slurpersupport.GPathResult
,而不是int
类型。您必须执行project.properties.setProperty('mynumber', (buildNumber.text().toInteger()+1).toString())
之类的操作。