Win11下使用swagger-codegen-maven-plugin遇非法转义序列错误
解决swagger-codegen-maven-plugin在Windows 11下的PatternSyntaxException错误
问题背景
已验证输入的OpenAPI JSON文件有效,但执行generate目标时触发正则语法错误,尽管项目Issue #8273标注rc1版本已修复该问题,Windows 11环境下仍复现。
插件配置
<properties> <swagger-codegen-maven-plugin-version>3.0.0-rc1</swagger-codegen-maven-plugin-version> </properties> <plugin> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>${swagger-codegen-maven-plugin-version}</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/swagger/ngdms-api.json</inputSpec> <language>java</language> <configOptions> <sourceFolder>src/main/java/com/brightinsight/proxy/ngdms/gen</sourceFolder> </configOptions> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>io.swagger.codegen.v3</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>3.0.8</version> </dependency> </dependencies> </plugin>
错误日志
... at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) at org.codehaus.classworlds.Launcher.main (Launcher.java:47) Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 3 v2\Java ^ at java.util.regex.Pattern.error (Pattern.java:2028) at java.util.regex.Pattern.escape (Pattern.java:2608) at java.util.regex.Pattern.atom (Pattern.java:2286) at java.util.regex.Pattern.sequence (Pattern.java:2210) ...
解决方案
统一插件版本:当前配置存在版本冲突——插件声明版本为3.0.0-rc1,但依赖中引入了3.0.8版本的同名插件。将插件版本统一为3.0.8,并移除重复的依赖声明:
<properties> <swagger-codegen-maven-plugin-version>3.0.8</swagger-codegen-maven-plugin-version> </properties> <plugin> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>${swagger-codegen-maven-plugin-version}</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/swagger/ngdms-api.json</inputSpec> <language>java</language> <configOptions> <sourceFolder>src/main/java/com/brightinsight/proxy/ngdms/gen</sourceFolder> </configOptions> </configuration> </execution> </executions> </plugin>清理Maven缓存:执行以下命令强制更新依赖,避免旧版本插件残留:
mvn clean install -U添加语言生成器依赖(可选):若仍有问题,在插件中添加Java生成器的明确依赖,确保版本与插件一致:
<plugin> <!-- 其他配置 --> <dependencies> <dependency> <groupId>io.swagger.codegen.v3</groupId> <artifactId>swagger-codegen-generators</artifactId> <version>3.0.8</version> </dependency> </dependencies> </plugin>检查路径格式:确保配置中所有路径使用正斜杠
/,避免Windows反斜杠\被误解析为正则转义符(当前配置已符合要求,但若后续修改路径需注意)。
内容的提问来源于stack exchange,提问作者greengold
相关产品推荐
相关产品推荐

