maven - gmaven 从 groovy 脚本设置 maven 属性

标签 maven groovy gmaven

我正在使用 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/

相关文章:

java - 使用 Maven 阴影重新定位包时 AmazonEc2Client 出现运行时错误

java.lang.ClassCastException : org. apache.catalina.core.DefaultInstanceManager 无法转换为 org.apache.tomcat.InstanceManager

groovy - Groovy 中(美元)斜杠字符串的用途是什么

grails - 修改String字段的getter的返回值

java - 为什么使用 Yeoman 的生成器而不是 Maven 的原型(prototype)?

从 jar 文件加载类时出现 java.lang.ClassNotFoundException

groovy - 如何使用groovy maven插件

grails - 构建应用程序时出现严重错误消息-BEGINNER

maven - 使用位于 src/test/java 中的 Maven 运行 Spock 测试