为什么Maven swagger插件不扫描外部模块?

时间:2019-12-23 14:53:14

标签: java spring-boot maven swagger swagger-2.0

我们有一个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插件。

有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

我认为这是swagger插件中的一个限制,因为在其Git中打开了多个问题,没有任何答案。 (自2017年起)