1、首先说一下软件的版本:springboot:1.5.2;springcloud:D-SR1;swaager2:2.6.0;gradle:4.5。工程模块是分开的单独的entity,api,mapper,service,每一个都是一个工程。

2、新项目需要集成swagger,看了一堆网上的例子,觉得很简单,便随意一试。

3、我了个去,集成结束后,访问页面直接是白页面。苍天啊,你最起码给我个网上遇到问题最多的问题404啊,给我个白页面是什么鬼,没办法找问题吧。

4、我引入jar包的位置是在整个项目根目录下build.gradle中,有两处引用(最外层dependencies,subproject中dependencies)代码在内网,此处就不贴了,模仿maven引入就行了,swwager配置如下:

@Configuration
@EnableSwagger2
public class SwaggerConfig{

@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.web.frontend"))
.paths(PathSelectors.none())
.build();
}

private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xxx项目 RESTful APIs")
.description("yyblog项目api接口文档")
.version("1.0")
.build();
}

}

5、白页面肯定是访问目标有问题,要么是没找到,要么是报错了,要么是拒绝连接,看了一下jar包中页面的位置,也怀疑像很多人遇到的问题一样,需要配

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {/**
* 配置静态资源路径以及上传文件的路径
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("/upload/**").addResourceLocations(environment.getProperty("spring.resources.static-locations"));
/*swagger-ui*/
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}

}

6、我也配了,而且配置在swaagerConfig中丝毫没有作用,去他奶奶的,这是为什么。访问资源就没有找到啊,后来看到有些加了配置registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/").setCachePeriod(0);加完这个页面是有反应了,但是仍然是有问题。一时半会也没解决,偶然在解决模块间相互依赖时,找到灵感,访问不到资源,也许是由于模块化导致扫描出了问题。果然在config类上加了@ComponentScan(basePackages="com.aa.api"),同时在build.gradle中引入api的project。一切正常了。也不需要什么配置静态资源路径什么的。其实我理解的流程应该是,通过引入api工程使得整个项目对api有一个配置加载,也就是引入,但是单单引入不行,还要在需要使用的地方进行加载,也就是config类中加扫描,这样就构成了一个整体。先引入再加载。

7、总结:使用模块构建的项目,在使用一些依赖时,包括模块依赖和jar包依赖,一定要尽可能合理并且不重复引用。遇到访问不到的问题首先考虑模块的引入是不是有问题,再具体看扫描路径。

gradle多模块构建集成swagger的更多相关文章

  1. 001-快速搭建Spring web应用【springboot 2.0.4】-gradle、springboot的启动过程分析、gradle多模块构建

    一.概述 学习<精通Spring MVC4>书籍笔记 二.笔记 1.快速构建Spring starter web项目几种方式 1>使用Spring Tool Suite生成Start ...

  2. 【转载】Gradle for Android 第五篇( 多模块构建 )

    Android studio不仅允许你为你的app和依赖库创建模块,同时也可为Android wear,Android TV,Google App Engine等创建模块,而这些单独的模块又可以在一个 ...

  3. Spring Boot 集成 Swagger 构建接口文档

    在应用开发过程中经常需要对其他应用或者客户端提供 RESTful API 接口,尤其是在版本快速迭代的开发过程中,修改接口的同时还需要同步修改对应的接口文档,这使我们总是做着重复的工作,并且如果忘记修 ...

  4. Gradle多项目构建

    1. 创建项目 首先创建项目,名称为 test: mkdir test && cd test gradle init 这时候的项目结构如下: ➜ test tree . ├── bui ...

  5. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  6. Spring boot集成Swagger,并配置多个扫描路径

    Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...

  7. SpringBoot集成Swagger,Postman,newman,jenkins自动化测试.

    环境:Spring Boot,Swagger,gradle,Postman,newman,jenkins SpringBoot环境搭建. Swagger简介 Swagger 是一款RESTFUL接口的 ...

  8. Spring Boot 集成 Swagger,生成接口文档就这么简单!

    之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...

  9. Gradle 庖丁解牛(构建生命周期核心托付对象创建源代码浅析)

    [工匠若水 http://blog.csdn.net/yanbober 未经同意严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 上一篇<Gradle 庖丁解牛(构建源头源代码浅析)> ...

随机推荐

  1. Bi-shoe and Phi-shoe 欧拉函数 素数

    Bamboo Pole-vault is a massively popular sport in Xzhiland. And Master Phi-shoe is a very popular co ...

  2. Spring注解@Repository、@Service、@Controller、@Component

    继前几章所讲解的注解中: http://www.cnblogs.com/EasonJim/p/6892280.html http://www.cnblogs.com/EasonJim/p/689974 ...

  3. Chrome改动浏览器User Agent

    对浏览器快捷方式右键->改动目标项为 C:\Users\LJ\AppData\Local\Google\Chrome\Application\chrome.exe --user-agent=&q ...

  4. luogu1896 [SCOI2005]互不侵犯 状压DP

    题目大意 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子.( 1 <=N <=9, 0 ...

  5. 6.11Realm简介

    CasRealm 统一认证授权中心  跟单点登录有关的.IniRealm 静态文件

  6. java环境的配置和求最大子数组

    做java开发的朋友,都应该有一个适合自己的开发环境,而eclipse就是这么一个适合java开发的集成环境,完全免费,是java开发人员的必备平台.在安装eclipse之前需要安装JDK, JDK是 ...

  7. HO引擎近况20150422

    这个月到现在才更新主要是想等UI模块中的一个地方攻关下来再更新,但是每天工作到很晚才回家所以一直没弄,上周日弄了一下基本上是通了! 公司的项目如我所料被砍了,又开始了一个新的项目,但是也存在许多问题, ...

  8. Hdu-2892 area 计算几何 圆与凸多边形面积交

    题面 题意:有一个凸多边形岛屿,然后告诉你从高空(x,y,h)投下炸弹,爆炸半径r,飞机水平速度和重力加速度,问岛屿被炸了多少 题解:算出来岛屿落地位置,再利用圆与凸多边形面积交 #include&l ...

  9. maven 打包jar && lib

    一.springboot 打包成jar 1.pom.xml <build> <!-- jar的名称--> <finalName>shiro</finalNam ...

  10. 第5章分布式系统模式 在 .NET 中使用 DataSet 实现 Data Transfer Object

    要在 .NET Framework 中实现分布式应用程序.客户端应用程序需要显示一个窗体,该窗体要求对 ASP.NET Web Service 进行多个调用以满足单个用户请求.基于性能方面的考虑,我们 ...