2013-06-09 3 views
1

Кто-нибудь знает, как получить доступ к переменной maven (project.properties getProperty ('justAbotherProperty')) из класса groovy? Когда я пытаюсь сделать это в рамках обычного сценария (вне класса), я могу это сделать. Согласно gmaven documentation maven объект переменная доступна изнутри скрипта. Если это так, я просто хочу, чтобы подтвердить это, а затем вернуться к scipts вместо классов ...gmaven получает доступ к переменным maven из класса groovy

Вот код, я использую:

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 

Заранее благодарим за помощь!

ответ

1

(Непроверено)
Перед тем, как перейти на сценарии из классов, взглянуть на Using Groovy Classes. Попробуйте установить scriptpath и следуйте примеру, указанному на странице.

Я попытался ответить на вопрос similar ранее. Я надеюсь, что когда вы установите класс Groovy в scriptpath, default variables, привязанные к среде сценария, должны быть доступны в классах.

+0

Не работает, спасибо за Вас ответ, хотя. Решил не тратить время на это и использовать простые сценарии. –

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> 

 Смежные вопросы

  • Нет связанных вопросов^_^