gmaven设置来自groovy脚本的maven属性

时间:2013-06-06 20:58:44

标签: maven groovy gmaven

我正在使用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)的东西。

1 个答案:

答案 0 :(得分:1)

artifactInfo.data.snapshotBuildNumber等GPath表达式的类型为groovy.util.slurpersupport.GPathResult,而不是int类型。您必须执行project.properties.setProperty('mynumber', (buildNumber.text().toInteger()+1).toString())之类的操作。