如何摆脱名为bin $的文件

时间:2017-02-10 16:14:00

标签: java oracle gradle code-generation jooq

使用Jooq生成器,通过Gradle插件,我现在正在使用POJO和表,而不仅是具有正常名称的类,还有大量名称以bin $开头的文件。

它们不是必需的,因为只是昨天发生器没有制作这些文件。无论有没有一切都可行。但我不希望这个项目充斥着数十个过多的文件。

2 个答案:

答案 0 :(得分:6)

自第10版以来,Oracle将删除的表放入回收站。他们的名字以Bin $开头。所以,JooQ只是为丢弃的表创建类。这可以通过两种方式阻止:在Oracle中停止使用回收bean或过滤Jooq生成器为其创建类的表。

ALTER SYSTEM SET RECYCLEBIN = OFF DEFERRED;
purge dba_recyclebin;

或更改发电机设置(示例适用于Gradle)

generator{
   ...
   database {
      ...
      excludes = '(?i:BIN\\$.*)'

编辑:经过多次尝试(由Lukas)和支票(由我)后,Lukas找到了excludes的正确含义。它的形式,恕我直言,唯一的解释 - JOOQ没有正确使用正则表达式,对于Groovy does not parse单引号中的字符串。

答案 1 :(得分:4)

jOOQ&#39; <excludes/>设置是Java正则表达式。你必须正确地形成它:

excludes = '(?i:BIN\\$.*)'

说明:

  • 使用(?i:...)表示不区分大小写。以防万一。双关语。
  • \\符号前使用$,因为$表示&#34;行尾#34;在正则表达式中。你想逃避这一点。并且因为Groovy / Gradle解析(如#34;查找转义序列&#34;)您的字符串you need to escape the backslash too,以便它到达Java Pattern.compile()调用
  • 使用.*表示在$之后,您希望匹配任意数量的字符。 . =任何字符,* =任意数量的重复