创建一个 Maven 原型以从一个 class 模板生成多个 classes

Create a maven archetype to generate multiple classes from one class template

我创建了一个自定义 Maven 原型,它有一个 ClassName.java class,其中包含一个 属性 ${属性Name} 及其 getter 和 setter.

package ${package};

// Start of user code (import)

// End of user code (import)

/**
 * Block ${BlockName}
 */
public class ${BlockName} extends Block<${BlockName}DTO> {

    /**
     * Item  ${itemName}
     */
    private final Item<${itemType}> ${itemName} = new Item.Control<${itemType}>(this, "${itemName}") {

    };

    // Getter and Setter

}

从这个自定义原型创建新项目时,我想要实现的是提供多个 class 名称(例如:Car、Bicycle ...),并为每个 [=23] 提供多个属性=](例如:Car.door、Car.window、Bicycle.wheel ...),并将从模板 ClassName.java 创建的 classes 作为输出作为 Car.java 和 Bicycle.java,但每个 class 中的 ${itemName}、getter 和 setter 都替换为给定的属性。

您或许可以为此编写一个 groovy 脚本,然后 运行 它 post-generation

Is there a way to post-process project generated from archetype?

另一方面:生成 getters/setters 是标准 IDE 功能(例如,在 Eclipse 中很容易完成),所以我不确定这在原型中是否真的有用。