Maven Mojo映射复杂对象

时间:2016-06-20 11:51:30

标签: maven parameters configuration mojo

我正在尝试编写maven插件,包括mvn配置参数中自定义类的映射。 有没有人知道如何等同的类"人"看起来像: http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Mapping_Complex_Objects

<configuration>
     <person>
          <firstName>Jason</firstName>
          <lastName>van Zyl</lastName>
     </person>
</configuration>

我的自定义mojo看起来像这样:

/**
 * @parameter property="person"
 */
protected Person person;
public class Person {
    protected String firstName;
    protected String lastName;
}

但我总是收到以下错误: 无法解析mojo的配置...对于参数人:无法创建类的实例... $ Person

有人能帮助我吗?

编辑:

使用Person(包括默认构造函数,getter和ampter)作为内部类的Mojo类。

public class BaseMojo extends AbstractMojo {

/**
 * @parameter property="ios.person"
 */
protected Person person;

public class Person {
    /**
     * @parameter property="ios.firstName"
     */
    protected String firstName;

    /**
     * @parameter property="ios.lastName"
     */
    protected String lastName;

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Person() {

    }
}

1 个答案:

答案 0 :(得分:0)

如果使用内部类,则它必须是静态的,以便可以启动而无需先创建外部类。如果内部类是使用外部类的私有变量创建的,则内部类很有用,但maven不会这样做。

希望下面的示例有助于解释为什么它不起作用...

"azure-mobile-apps": "^3.0.1"