maven.apache.orgで言及されているモジョのマップ属性の例は、以下に指定されているように、文字列をキーおよび値として持つマップを定義しているため、非常に単純です。
/**
* My Map.
*/
@Parameter
private Map myMap;
割り当てられた構成は次のようになります。
<myMap>
<key1>value1</key1>
<key2>value2</key2>
</myMap>
私が達成しようとしているのは、文字列をキーとして、独自に定義したクラス Person を値として取る、より高度なマップです。
/**
* My Advanced Map.
*/
@Parameter
private Map<String,Person> myMap;
Person クラスは私の MOJO と同じパッケージにあり、次のようになります。
public class Person {
private String name;
private int age;
public void setName( String name )
{
this.name = name;
}
public void setAge( int age )
{
this.age = age;
}
public String getName( )
{
return this.name;
}
public int getAge( )
{
return this.age ;
}
}
私のMOJOの構成は次のようになると思います:
<myMap>
<firstPerson>
<person>
<name>steve</name>
<age>26</age>
</person>
</firstPerson>
<secondPerson>
<person>
<name>meruem</name>
<age>1</age>
</person>
</secondPerson>
</myMap>
上記の構成でこの MOJO を実行すると、定義されたキーでマップが作成されますが、常に null 値が返されます: {firstPerson=null,secondPerson=null}
現在、私が何か間違ったことをしているのか、それとも例がサポートされているのかさえわかりません.「高度な」マップ属性を説明するドキュメントが見つからず、今のところ最後の手段はソースを閲覧することです.