缩小尺寸/定制jOOQ构建?

时间:2013-11-08 21:16:34

标签: java sql minimize jooq

我有一个数据库密集的可分发java应用程序,目前只有400k。我们需要改进数据库查询构建以及支持一些特定的数据库方言。

jOOQ必须加入我们的JAR中,即使使用minimizeJar元素进行遮挡,它也会增加到1.6MB。

有没有办法可以自定义构建或删除我们现在没用的jOOQ组件?方言,非插入/选择/删除查询类,我们不需要的其他功能?

我想过尝试识别我们正在使用的每个导入的类,并设置maven只遮蔽那些,但我还需要处理jOOQ内部使用的类,我不知道jOOQ对所有内容的依赖程度。

如果我可以将它剥离到几百k,我将继续使用它出售。

1 个答案:

答案 0 :(得分:0)

jOOQ是一种特定于域的语言,根据此处说明的原则实现: http://blog.jooq.org/2012/01/05/the-java-fluent-api-designer-crash-course/

这意味着DSL规范中的每个“生产”或“主要”都会生成一个Java接口,其中包含可能在类加载器中生成的所有开销。另外,由于jOOQ 3.0,引入了具有1-22度的记录和行类型(例如org.jooq.Row1,org.jooq.Row2,... org.jooq.Row22)。所有这些元素都是API的一部分,可能无法进一步删除。

当然,您可以尝试手动删除jOOQ API和实现,从中删除所有行类型。您可能不需要的另一个完整语句是MERGE语句,它也具有广泛的API。然后,有一些工具包,不是严格需要的,具体来说是:

  • org.jooq.tools.csv
  • org.jooq.tools.json
  • org.jooq.types
  • org.jooq.util。[方言]

此外,您可以尝试从org.jooq.impl包中删除几个类。类名应该相当简单,以帮助您决定是否需要某些东西。

看看你采取这些措施的程度会很有趣。这对Android用户也很有用。