gmaven可以从groovy类访问maven变量

时间:2013-06-09 13:37:51

标签: maven groovy gmaven

有人知道如何从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 

提前感谢您的帮助!

2 个答案:

答案 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>