我已经使用 jOOQ 设置了一个 Java 项目。目前我们即将在 Jenkins 上创建一个 CI 管道。
理想情况下,我们不希望在 repo 上提交生成的代码,而是在构建过程中生成它。然而,jOOQ 需要连接到数据库才能生成代码。
第一种方法是让 Jenkins 连接到数据库。如果我们被禁止从 Jenkins 访问数据库,我们应该考虑哪些方法?
欢迎并非常感谢任何评论或提示。
最佳答案
为什么不将生成的代码提交到存储库?
正如您所注意到的,每种方法都有利有弊,但总的来说,提交生成的代码有更多的优点。像查看任何其他具有自己的发布周期和版本控制的库一样查看该代码。您可能有这样的库,您可以将它们称为 libraryAbc-1.3.17.jar,并且将 jar 文件提交到存储库没有任何问题,对吧?特别是当它是第三方依赖项时。
这是一篇有趣的文章,详细说明了上述内容:
以及最近关于 jOOQ 用户组的讨论:
在没有数据库连接的情况下重新生成代码的选项
请注意该讨论如何引用从不是数据库的元模型重新生成代码的选项,例如:
所有这些都具有从文件系统中获取元模型的优势,但它们不支持直接连接到数据库时会支持的所有特定于供应商的功能。
但为什么不在您的实际数据库产品中使用测试容器呢? An example can be seen here .
关于java - jOOQ 持续集成方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49071369/