diff --git a/modules/swagger-maven-plugin/pom.xml b/modules/swagger-maven-plugin/pom.xml
index 633bf1ba23..3f59c71053 100644
--- a/modules/swagger-maven-plugin/pom.xml
+++ b/modules/swagger-maven-plugin/pom.xml
@@ -152,6 +152,11 @@
plexus-component-annotations2.2.0
+
+ org.apache.maven.reporting
+ maven-reporting-api
+ 3.1.1
+ io.swagger.core.v3swagger-jaxrs2
diff --git a/modules/swagger-maven-plugin/src/main/java/io/swagger/v3/plugin/maven/SwaggerReport.java b/modules/swagger-maven-plugin/src/main/java/io/swagger/v3/plugin/maven/SwaggerReport.java
new file mode 100755
index 0000000000..e049442c64
--- /dev/null
+++ b/modules/swagger-maven-plugin/src/main/java/io/swagger/v3/plugin/maven/SwaggerReport.java
@@ -0,0 +1,248 @@
+package io.swagger.v3.plugin.maven;
+
+import org.codehaus.doxia.sink.Sink;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.MavenReport;
+import org.apache.maven.reporting.MavenReportException;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.StandardCopyOption;
+import java.util.Locale;
+
+/**
+ * Generates an interactive Swagger UI page from the project's OpenAPI
+ * specification and integrates it into the Maven site as a report.
+ *
+ *
By default the report looks for {@code openapi.json} or
+ * {@code openapi.yaml} in {@code ${project.build.directory}}.
+ * Run the {@code resolve} goal first to generate the spec file.