jOOQ 3.6.3 代码生成错误? PatternSyntaxException: Illegal/unsupported 转义序列
jOOQ 3.6.3 Code Generation Bug? PatternSyntaxException: Illegal/unsupported escape sequence
jOOQs 代码生成器似乎在 v3.6.3
中引入了一个问题。我无法在 v3.6.3
中使用此配置文件生成 POJO
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<!-- Configure the database connection here -->
<jdbc>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost:5432/my_db</url>
<user>postgres</user>
<password>pw</password>
</jdbc>
<generator>
<database>
<name>org.jooq.util.postgres.PostgresDatabase</name>
<inputSchema>public</inputSchema>
</database>
</generator>
</configuration>
但它又开始与 v3.6.2
一起工作了。我在最新版本中得到的错误堆栈:
org.jooq.util.GeneratorException: Error generating code for schema public
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:268)
at org.jooq.util.GenerationTool.run(GenerationTool.java:426)
at org.jooq.util.GenerationTool.generate(GenerationTool.java:176)
at org.jooq.util.GenerationTool.main(GenerationTool.java:151)
Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 9
(?s:^.*?\Rpackage\s+(.*?);?\R.*?$)
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.escape(Unknown Source)
at java.util.regex.Pattern.atom(Unknown Source)
...
[main] ERROR org.jooq.util.GenerationTool - Cannot read jooq-config.xml. Error : Error generating code for schema public
org.jooq.util.GeneratorException: Error generating code for schema public
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:268)
at org.jooq.util.GenerationTool.run(GenerationTool.java:426)
at org.jooq.util.GenerationTool.generate(GenerationTool.java:176)
at org.jooq.util.GenerationTool.main(GenerationTool.java:151)
Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 9
(?s:^.*?\Rpackage\s+(.*?);?\R.*?$)
^
at java.util.regex.Pattern.error(Unknown Source)
...
at org.jooq.util.JavaWriter.beforeClose(JavaWriter.java:121)
at org.jooq.util.GeneratorWriter.close(GeneratorWriter.java:237)
at org.jooq.util.JavaGenerator.generateSchema(JavaGenerator.java:3131)
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:298)
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:265)
... 3 more
[main] ERROR org.jooq.util.GenerationTool - Usage : GenerationTool <configuration-file>
是的,这是一个仅适用于 jOOQ 3.6.3 的已知回归:
https://github.com/jOOQ/jOOQ/issues/4576
您可以通过使用 Java 8 到 运行 源代码生成器来解决这个问题。
jOOQs 代码生成器似乎在 v3.6.3
中引入了一个问题。我无法在 v3.6.3
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<!-- Configure the database connection here -->
<jdbc>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost:5432/my_db</url>
<user>postgres</user>
<password>pw</password>
</jdbc>
<generator>
<database>
<name>org.jooq.util.postgres.PostgresDatabase</name>
<inputSchema>public</inputSchema>
</database>
</generator>
</configuration>
但它又开始与 v3.6.2
一起工作了。我在最新版本中得到的错误堆栈:
org.jooq.util.GeneratorException: Error generating code for schema public
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:268)
at org.jooq.util.GenerationTool.run(GenerationTool.java:426)
at org.jooq.util.GenerationTool.generate(GenerationTool.java:176)
at org.jooq.util.GenerationTool.main(GenerationTool.java:151)
Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 9
(?s:^.*?\Rpackage\s+(.*?);?\R.*?$)
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.escape(Unknown Source)
at java.util.regex.Pattern.atom(Unknown Source)
...
[main] ERROR org.jooq.util.GenerationTool - Cannot read jooq-config.xml. Error : Error generating code for schema public
org.jooq.util.GeneratorException: Error generating code for schema public
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:268)
at org.jooq.util.GenerationTool.run(GenerationTool.java:426)
at org.jooq.util.GenerationTool.generate(GenerationTool.java:176)
at org.jooq.util.GenerationTool.main(GenerationTool.java:151)
Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 9
(?s:^.*?\Rpackage\s+(.*?);?\R.*?$)
^
at java.util.regex.Pattern.error(Unknown Source)
...
at org.jooq.util.JavaWriter.beforeClose(JavaWriter.java:121)
at org.jooq.util.GeneratorWriter.close(GeneratorWriter.java:237)
at org.jooq.util.JavaGenerator.generateSchema(JavaGenerator.java:3131)
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:298)
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:265)
... 3 more
[main] ERROR org.jooq.util.GenerationTool - Usage : GenerationTool <configuration-file>
是的,这是一个仅适用于 jOOQ 3.6.3 的已知回归: https://github.com/jOOQ/jOOQ/issues/4576
您可以通过使用 Java 8 到 运行 源代码生成器来解决这个问题。