扬鞭 - Maven的插件。我在mvn编译中找不到swagger.json

时间:2018-04-02 02:29:47

标签: java maven jax-rs swagger swagger-maven-plugin

我不知道我做错了什么。我们之前在Jersey JAX-RS项目中使用了swagger-core来生成swagger.json。它影响了我们的性能,然后我们发现swagger-maven-plugin只会在编译时生成swagger.json而不是运行时。所以我试图过渡到swagger-maven-plugin。我希望我理解这是正确的。我在swagger-core配置和maven依赖期间保留了web.xml,但是将插件添加到同一个构建中,如下所示: 的pom.xml

    <profile>
        <id>daily</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <resources.directory>${basedir}/src/daily/resources
            </resources.directory>
            <resources.test.directory>${basedir}/src/test/daily/resources
            </resources.test.directory>
            <config.directory>${basedir}/src/daily/config</config.directory>
            <env.base.dir>${project.build.directory}/etc</env.base.dir>
        </properties>
        <dependencies>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-jersey-jaxrs</artifactId>
                <version>1.5.0</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>com.github.kongchen</groupId>
                        <artifactId>swagger-maven-plugin</artifactId>
                        <version>3.1.0</version>
                        <configuration>
                            <apiSources>
                                <apiSource>
                                    <springmvc>false</springmvc>
                                    <locations>
                                        <location>api.resource</location>
                                        <location>api.model.datagov</location>
                                        <location>api.model.eventitem</location>
                                        <location>api.model.item</location>
                                    </locations>
                                    <schemes><scheme>http</scheme></schemes>
                                    <basePath>/itemapi</basePath>
                                    <info>
                                        <title>ItemAPI</title>
                                        <version>0.0.1-SNAPSHOT</version>
                                    </info>
                                    <outputPath>${basedir}/src/main/webapp/output.html</outputPath>
                                    <swaggerDirectory>${basedir}/src/main/webapp/dist</swaggerDirectory>
                                    <attachSwaggerArtifact>true</attachSwaggerArtifact>
                                </apiSource>
                            </apiSources>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>compile</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </pluginManagement>
            <resources>
                <resource>
                    <directory>${basedir}/src/daily/resources</directory>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
            </resources>
            <testResources>
                <testResource>
                    <directory>${basedir}/src/test/daily/resources</directory>
                </testResource>
                <testResource>
                    <directory>${basedir}/src/test/resources</directory>
                </testResource>
            </testResources>
        </build>
    </profile>

我不得不添加pluginManagement标记,因为执行标记发出错误。顺便说一下,我在日食中做了所有这些。

这是web.xml中的swagger配置,以防有用:

    <servlet>
    <servlet-name>JAX-RS Servlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>
        io.swagger.jaxrs.listing;
        io.swagger.jaxrs.json;
        org.codehaus.jackson.jaxrs;
        api.resource
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>JAX-RS Servlet</servlet-name>
    <url-pattern>/itemapi/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>Jersey2Config</servlet-name>
    <servlet-class>io.swagger.jaxrs.config.DefaultJaxrsConfig</servlet-class>
    <init-param>
        <param-name>api.version</param-name>
        <param-value>0.0.1-SNAPSHOT</param-value>
    </init-param>
    <init-param>
        <param-name>swagger.api.title</param-name>
        <param-value>ItemApi</param-value>
    </init-param>
    <init-param>
        <param-name>swagger.api.basepath</param-name>
        <param-value>/itemapi/</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

现在,我右键点击项目并选择maven - &gt;构建 - &gt;干净安装,它成功构建,但在webapp文件夹下我没有看到任何output.html或'dist'文件夹中没有swagger.json。我甚至尝试通过cmd进入git项目,然后运行mvn compile。相同。建立成功,但没有任何反应。我做错了什么?

0 个答案:

没有答案