我可以使用Maven原型插件向Velocity上下文添加自定义对象吗?

Jam*_*ett 8 java velocity archetypes maven

我们有许多使用Velocity生成项目的代码生成器.这一代可能非常复杂:

  • 在调用velocity之前使用反射(以反省我们必须与之交互的第三方代理) - 将结果属性(复杂对象图)添加到速度上下文中

  • 项目结构和文件可能会根据所选的选项而有所不同

  • 模板不仅仅是变量替换(它们使用添加到速度上下文的自定义对象,它包含许多派生属性,包括在模板中迭代的其他对象的集合)

我喜欢用maven原型替换它们,因为它们也使用Velocity,但看起来它们似乎只能进行简单的变量替换和静态文件/文件夹结构.

  1. 有没有办法在从原型创建项目之前进行处理,将对象添加到速度上下文,并让原型模板能够访问它们?

  2. 如果是这样,创建的文件夹和文件是否可以动态?(或者每个变体需要一个单独的原型吗?)

  3. 或者编写自定义Mojo更好吗?(基本上用Maven插件包装现有的生成器)