为什么jOOQ建议将生成的代码放在" / target"而不是" / src"?

时间:2014-08-29 21:29:39

标签: java sql maven code-generation jooq

查看代码生成器的Maven插件配置的jOOQ example(接近配置的末尾),我看到生成的文件的目标目录是target/generated-sources/jooq

由于生成器生成Java代码,您知道为什么这里的建议不是/src的子文件夹,而是一个完全分离的子文件夹吗?这有什么理由吗?这是最佳做法还是什么?

1 个答案:

答案 0 :(得分:5)

这是一个很好的问题,should probably also be covered in the jOOQ manual

这个问题与jOOQ没有严格关系,而是与一般的源代码生成有关(例如,当使用XJC从XSD生成带有JAXB注释的Java代码时)。有些人更喜欢将生成的源代码部分放在" main"源代码,其他人喜欢将它分开。每种方法背后都有这些想法:

保持事物分离(例如目标/生成源)

  • 唯一的真相来源"是数据库架构。没有任何副本以源代码形式存储,只能以二进制形式存储。
  • 源代码生成成为您构建的一个组成部分。构建应用程序的每个人(开发人员,持续集成)都需要重新生成源代码。这将确保来源始终是最新的。

将事物保持在一起(例如src / main / java)

  • 同样的"真相"在数据库架构及其生成的副本之间重复。
  • 源代码生成是一个"外部"过程,这不是你构建的一部分。
  • 生成的源代码置于版本控制之下,预计它们是最新的。
  • 在jOOQ的情况下,可以监视此类版本控制的源以进行数据库更改。

这并不是一种普遍偏好的方式。两者都有其优点。