swagger导出离线文档
参考:
https://blog.csdn.net/ii19910410/article/details/90031310
https://www.cnblogs.com/james-roger/p/13183661.html
https://www.cnblogs.com/jpfss/p/11438606.html
https://www.cnblogs.com/hanxue112253/p/10983483.html
https://blog.csdn.net/u012888052/article/details/115208796
swagger的HTML文档已经很完美了,但总有一些时候,需要静态的文件文档。这时候就需要配置一些插件。
一、swagger相关的依赖pom
<!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version> </dependency> <!--swagger-ui--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.5.0</version> </dependency> <!-- swagger导出PDF/HTML所需依赖 --> <dependency> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup</artifactId> <version>1.3.1</version> </dependency>
二、maven插件
在maven-build-plugins下面增加两个插件
<plugin> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup-maven-plugin</artifactId> <version>1.2.0</version> <configuration> <!--此处端口一定要是当前项目启动所用的端口--> <swaggerInput>http://localhost:8080/v2/api-docs</swaggerInput> <!--生成多个文件--> <!-- <outputDir>src/docs/asciidoc/generated</outputDir>--> <!--生成单个文件--> <outputFile>src/docs/asciidoc/api</outputFile> <config> <!-- 除了ASCIIDOC之外,还有MARKDOWN和CONFLUENCE_MARKUP可选,下面生成HTML和PDF的的插件依赖ASCIIDOC格式 --> <swagger2markup.markupLanguage>MARKDOWN</swagger2markup.markupLanguage> </config> </configuration> </plugin> <plugin> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> <version>1.5.3</version> <!-- Include Asciidoctor PDF for pdf generation --> <dependencies> <dependency> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctorj-pdf</artifactId> <version>1.5.0-alpha.10.1</version> </dependency> <dependency> <groupId>org.jruby</groupId> <artifactId>jruby-complete</artifactId> <version>1.7.21</version> </dependency> </dependencies> <!-- Configure generic document generation settings --> <configuration> <!-- 对应上面插件的outputdir--> <!-- <sourceDirectory>src/docs/asciidoc/generated</sourceDirectory>--> <!-- 对应上面插件的outputfile--> <sourceDirectory>src/docs/asciidoc</sourceDirectory> <sourceDocumentName>api.adoc</sourceDocumentName> <sourceHighlighter>coderay</sourceHighlighter> <attributes> <toc>left</toc> </attributes> </configuration> <!-- Since each execution can only handle one backend, run separate executions for each desired output type --> <executions> <execution> <id>output-html</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <backend>html5</backend> <outputDirectory>src/docs/asciidoc/html</outputDirectory> </configuration> </execution> <!-- pdf中文有乱码,目前不太好用--> <execution> <id>output-pdf</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <backend>pdf</backend> <outputDirectory>src/docs/asciidoc/pdf</outputDirectory> </configuration> </execution> </executions> </plugin>
三、swagger配置文件(可选)
有时候发现swagger生成的接口文档里有一些springboot自己的接口,这些是调试用的,对外根本不需要,怎么可以从文档里把这些去掉呢,就需要swagger配置类指定我需要的接口的所在包,这样其他的接口就不会出现了。
@EnableSwagger2 @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("cc.group.articid.controller")) .paths(PathSelectors.any()) .build(); } }
四、maven命令
1.mvn swagger2markup:convertSwagger2markup
2.mvn generate-resources
第一个插件生成adoc文件,也可以选择生成md文件
第二个插件需要依赖第一个插件的adoc文件,PDF中文会有乱码,我是用上一步的md文件导出的PDF,也很方便
还有如果喜欢HTML的文件,第二个插件会生成一个HTML文件,也很方便。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗