You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Maven生成SpringFox Swagger所需Javadoc时遇代理相关错误

解决Maven生成Javadoc时出现「Illegal package name: "!"」的问题

兄弟,我之前踩过这个坑!结合你用SpringFox Swagger的场景,这个错误大概率是Javadoc插件扫描到了不符合规范的包路径,多半和SpringFox的依赖或者插件配置有关,给你几个亲测有效的解决方向:

1. 排除可疑依赖的包扫描

有时候SpringFox相关的依赖(比如swagger-models)会带一些奇怪的资源文件,导致Javadoc误判成非法包。你可以在maven-javadoc-plugin的配置里直接排除这些有问题的包:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <!-- 直接排除所有带"!"的异常包 -->
        <excludePackageNames>!**</excludePackageNames>
        <!-- 也可以精准排除SpringFox相关的可疑包,比如: -->
        <!-- <excludePackageNames>io.swagger.models.**</excludePackageNames> -->
        <!-- 关闭文档语法检查,避免其他小问题打断生成流程 -->
        <additionalparam>-Xdoclint:none</additionalparam>
    </configuration>
</plugin>

2. 升级maven-javadoc-plugin版本

你当前用的3.0.0版本存在一些兼容性问题,试试升级到更稳定的新版本(比如3.6.3),很多旧版本的bug在新版本里已经修复了:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.6.3</version>
    <configuration>
        <!-- 保留你原本的其他配置即可 -->
    </configuration>
</plugin>

3. 检查项目自身的包结构

偶尔也会是项目里不小心创建了名称违规的包(比如包含"!"字符的目录),或者资源文件的路径出了问题。花2分钟扫一眼src/main/javasrc/test/java下的包结构,有没有不符合Java命名规范的包名。

4. 把错误降级为警告

如果上面的方法都没解决,还可以给Javadoc加个参数,把非法包名的错误降级成警告,让生成流程继续走下去:

<configuration>
    <additionalJOption>-J-Djdk.javadoc.illegalPackageName=warn</additionalJOption>
</configuration>

内容的提问来源于stack exchange,提问作者JimmyD

火山引擎 最新活动