1

有谁知道如何从 groovy 类中访问 maven 变量(project.properties getProperty('justAbotherProperty'))?当我试图在纯脚本中(在课堂之外)执行此操作时,我能够做到这一点。根据gmaven 文档,可以从脚本中访问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 

提前感谢您的帮助!

4

2 回答 2

1

未经测试
在您从类返回脚本之前,请查看使用 Groovy 类。尝试设置scriptpath并按照页面中提到的示例进行操作。

我之前试图回答一个类似的问题。我希望当您在与脚本环境相关scriptpath默认变量中设置 Groovy 类时,这些类中应该可用。

于 2013-06-09T14:24:40.257 回答
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>
于 2013-06-10T20:52:28.467 回答