我们有许多使用Velocity生成项目的代码生成器。生成可能非常复杂:
在调用速度之前使用反射(内省我们必须与之交互的第 3 方代理) - 将结果属性(复杂对象图)添加到速度上下文
项目结构和文件可能因所选选项而异
模板不仅仅是变量替换(它们使用添加到速度上下文的自定义对象,其中包含许多派生属性,包括在模板中迭代的其他对象的集合)
我很想用maven 原型替换这些,因为它们也使用 Velocity,但看起来它们似乎只能进行简单的变量替换和静态文件/文件夹结构。
有没有办法在从原型创建项目之前进行处理,将对象添加到速度上下文,并使原型模板能够访问它们?
如果是这样,要创建的文件夹和文件可以是动态的吗?(或者您是否需要为每个变体提供单独的原型?)
还是编写自定义 Mojo 更好?(本质上是用 Maven 插件包装现有的生成器)