我正在使用 maven+gmaven 插件从 Nexus 存储库检索一些信息。我正在做的是检索内部版本号并尝试将 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()
这样适用于其他人的简单函数在我的情况下不起作用?
预先感谢您的帮助和解释!
附:看来我有旧的 gmaven 或者只有 setProperty(String, NodeChildren) 存在的东西。
最佳答案
GPath 表达式(例如 artifactInfo.data.snapshotBuildNumber
)的类型为 groovy.util.slurpersupport.GPathResult
,而不是 int
类型。您必须执行类似 project.properties.setProperty('mynumber', (buildNumber.text().toInteger()+1).toString())
的操作。
关于maven - gmaven 从 groovy 脚本设置 maven 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972072/