Форс-Maven-плагин. Я не могу найти swagger.json на mvn compile
Я не знаю, что я делаю не так. Ранее мы использовали swagger-core в нашем проекте JAX-RS на Джерси для генерации swagger.json. Это повлияло на нашу производительность, и затем мы нашли swagger-maven-plugin, который генерирует swagger.json только во время компиляции, а не во время выполнения. Поэтому я попытался перейти на Swagger-Maven-плагин. Я надеюсь, что я понимаю это правильно. Я оставил web.xml, как это было во время конфигурации ядра Swagger и зависимости maven, но добавил плагин в ту же сборку, например, так: 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, потому что тег выполнения выдавал ошибку. Кстати, я делаю все это в затмении.
Это конфигурация swagger в web.xml, если она полезна:
<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 -> build -> clean install, и он успешно собирается, но в папке webapp я не вижу ни файла output.html, ни папки "dist" no swagger.json. Я даже попробовал через cmd перейти к проекту git и запустить mvn compile. Так же. Создайте успех, но на самом деле ничего не происходит. Что я делаю неправильно?