我不知道我做错了什么。我们之前在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。相同。建立成功,但没有任何反应。我做错了什么?