是否有任何通用的Maven代码生成器?

时间:2013-02-27 09:00:04

标签: java maven code-generation

我目前正在开发一个项目,它会出于各种目的大量使用代码生成。一个生成器从jpa实体生成SQL脚本。另一个从pojos生成DTO,另一个生成JPA2.0元模型,另一个生成基于Java类的一些xml和模式文件...每个生成器完全不同需要以不同方式配置。

我现在的问题是......是否有任何通用的maven代码生成器插件具有以下属性: - 创建Java类的pojo模型(名称,属性,注释,方法......) - 使用模板定义使用pojo模型生成任何输出的输出。 - 允许我为一个类指定多个模板 - 允许我生成代码和资源 - 允许我为目标/生成源生成一个基类,并为src / main / java生成一个虚拟实现,它只是扩展了基类(如果src / main / java中的虚拟类存在,没有任何反应,如果它没有'它生成了这样一个虚拟类。这个代码被签入SCM并允许手动扩展生成的类

我使用Flexmojos GraniteDS插件生成我的ActionScript模型代码,但它非常专门用于此特定目的。

我认为这样的通用生成器会让事情变得更容易。

4 个答案:

答案 0 :(得分:0)

minuteproject,它支持各种输入/输出格式。它不是100%符合您的要求,但理念是相同的:为各种目标创建单个生成器。

我认为它还没有Maven插件,但开发人员非常敏感。我相信你可以为它创建一个功能请求。

答案 1 :(得分:0)

正如Lukas所说,Minuteproject是为这样的事情设计的:

  1. 您可以添加各种格式的任何基于文本的类型(xml,属性,java,html ...)文件
  2. 生成的文件可以互相引用
  3. 模板语言是速度
  4. 模板可应用于表/视图;列(字段);包(表/视图组);模型;应用
  5. 代码为updatable(您可以添加扩展名;修改区域),这意味着您修改的代码将保持连续生成
  6. 是操作系统,你可以修改任何模板并添加你的
  7. 它捆绑了诸如JPA2
  8. 之类的曲目
  9. 它适用于约定,但您可以定义适用于模型的自己的约定
  10. 它不仅限于数据结构,它可以对您的语句进行逆向工程(SDD - 语句驱动开发)
  11. 但目前它通过命令行工作;一个maven插件将是一个很好的改进

    弗洛里安

答案 2 :(得分:0)

string-template-maven-plugin可能是“通用”代码生成器的最佳候选者。您可以定义字符串模板模板组文件,并提供一个java文件以将数据提供给模板。该插件将自动编译并运行您的Java代码(控制器)。

答案 3 :(得分:0)

试试write-it-once。基于模板的代码生成器您使用Groovy编写自定义模板,并根据Java反射生成文件。这是生成任何文件的最简单方法。您可以通过生成AspectJ或java文件,基于JPA注释的SQL,基于枚举的插入/更新等来生成getters / settest / toString。