如何删除名称为 bin$ 的文件

How to get rid of files with names bin$

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

它们不是必需的,因为就在昨天,生成器还没有生成这些文件。不管有没有它们,一切都正常。但我不希望该项目散落着数十个过多的文件。

从第 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 单引号中的字符串。

jOOQ 的<excludes/> 设置是一个Java 正则表达式。你必须像这样正确地形成它:

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

解释:

  • 对 case-insensitivity 使用 (?i:...)。以防万一。双关语。
  • $符号前使用\,因为$在正则表达式中表示"end of line"。你想逃避它。因为 Groovy/Gradle 解析(如 "look for escape sequences")你的字符串,you need to escape the backslash too, for it to reach the Java Pattern.compile() 调用
  • 使用.*表示在$之后你要匹配任意数量的字符。 . = 任意字符和 * = 任意重复次数