我们有一个maven多模块项目,看起来像这样:
Parent - admin - microserviceA - microserviceB - microserviceC
微服务A,B和C公开了功能特定的其余端点。 但是,管理模块公开了常见的其他端点,以实现弹性,健壮性和恢复性。
为了记录我们的API,我们将swagger 2.0与maven swagger插件一起使用。
我们用于每个微服务的pom.xml
如下:
微服务A:
<build>
<plugin>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>${swagger.maven.plugin}</version>
<configuration>
<apiSources>
<apiSource>
<springmvc>false</springmvc>
<locations>
<location>com.xxx.a.resource</location>
<location>com.xxx.admin.resource</location>
</locations>
<schemes>http,https</schemes>
.....
</build>
微服务B:
<build>
<plugin>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>${swagger.maven.plugin}</version>
<configuration>
<apiSources>
<apiSource>
<springmvc>false</springmvc>
<locations>
<location>com.xxx.b.resource</location>
<location>com.xxx.admin.resource</location>
</locations>
<schemes>http,https</schemes>
.....
</build>
微服务C:
<build>
<plugin>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>${swagger.maven.plugin}</version>
<configuration>
<apiSources>
<apiSource>
<springmvc>false</springmvc>
<locations>
<location>com.xxx.c.resource</location>
<location>com.xxx.admin.resource</location>
</locations>
<schemes>http,https</schemes>
.....
</build>
问题:即使通过在maven swagger插件<location>
中明确指定管理软件包,maven插件也不会在管理模块级别扫描其余端点。
PS:我已经尝试了多个版本的Maven插件。
有什么解决办法吗?
答案 0 :(得分:0)
我认为这是swagger插件中的一个限制,因为在其Git中打开了多个问题,没有任何答案。 (自2017年起)