有人知道如何从groovy类中访问maven变量(project.properties getProperty('justAbotherProperty'))吗?当我在普通脚本(课堂外)尝试这样做时,我能够做到这一点。根据{{3}} maven 项目 变量,可以从脚本中访问。如果是这样我只是想确认它然后回到scipts而不是类...
以下是我使用的代码:
class Connector {
private String sshHost
private String sshUser
private String sshPass
private Integer sshPort
private def parseParametes() {
sshHost = project.properties.getProperty('scp.host')
sshUser = project.properties.getProperty('scp.user')
sshPass = project.properties.getProperty('scp.password')
sshPort = project.properties.getProperty('scp.port').toInteger()
}
}
执行parseParameters()
吐出:
groovy.lang.MissingPropertyException: No such property: project for class: Connector
提前感谢您的帮助!
答案 0 :(得分:1)
(未测试)
在从类中移回脚本之前,请查看Using Groovy Classes。尝试设置scriptpath
并按照页面中提到的示例进行操作。
我之前尝试回答similar个问题。我希望当您在scriptpath
中设置Groovy类时,与脚本环境相关的default variables应该在类中可用。
答案 1 :(得分:1)
您需要将脚本变量传递到您需要的类中。所以如果你像这样重新定义你的课程:
class Connector {
private String sshHost
private String sshUser
private String sshPass
private Integer sshPort
Connector(properties) {
sshHost = properties['scp.host']
sshUser = properties['scp.user']
sshPass = properties['scp.password']
sshPort = properties['scp.port'] as Integer
}
}
然后在插件执行中,构造连接器,将project.properties:
传递给它<source>
def connector = new Connector(project.properties)
</source>