Передача параметров в Custom Lifecycle из моджо - PullRequest
1 голос
/ 16 июля 2011

Я написал собственный плагин maven, который расширяет плагин axis2 wsdl2java с концепцией создания пользовательского жизненного цикла, в котором плагин wsdl2java выполняется до того, как цель моего пользовательского плагина будет выполнена.

Код для вызова пользовательскогоЖизненный цикл выглядит следующим образом.

lifecycle.xml

 <lifecycles>     
    <lifecycle> 
    <id>custom-lifecycle</id> 
    <phases> 
     <phase> 
       <id>invoke</id> 
         <executions> 
              <execution> 
                <goals> 
                  <goal> 
                    org.apache.axis2:axis2-wsdl2code-maven-plugin:wsdl2code 
                  </goal> 
                </goals> 
                <configuration> 
                  <packageName>com.foo.myservice</packageName>
                   <wsdlFile>src/main/wsdl/myservice.wsdl</wsdlFile>
                 </configuration> 
              </execution> 
            </executions> 
          </phase> 
        </phases> 
      </lifecycle> 
    </lifecycles> 

Мой Mojo

/**
 * 
 * @goal process
 * @execute lifecycle="custom-lifecycle" phase="invoke"
 */
public class SampleMojo extends AbstractMojo
{
  public void execute()
    throws MojoExecutionException
  {
    //Code
  }
}

Проблема: Я хочу передать параметры плагина wsdl2java (т. е. packagename, wsdlFile) из моего пользовательского плагина.

Можно ли отправить параметры из моего Mojo в пользовательский жизненный цикл?Если да, то как это сделать?

Заранее спасибо

Аадхья

1 Ответ

2 голосов
/ 03 декабря 2011

Да, это действительно возможно, и достигается аннотированием статических полей с тем же именем, что и у параметра xml, с помощью @ param следующим образом:

/**
 * Package name - this is injected from the 'packageName' xml element
 * @parameter
 */
private static String packageName;

/**
 * WSDL File Location, populated from the 'wsdlFile' xml element
 * @parameter
 */
private static String wsdlFile;

public void execute() throws MojoExecutionException, MojoFailureException {
    //do stuff here with packageName and wsdlFile.
}

PS: у Checkstyle есть проблема с @goal и @parameter - мне пришлось отключить checkstyle, используя // CSOFF: TreeWalker, чтобы полностью отключить его для этого класса.

...