diff --git a/0001-Port-to-jetty-9.patch b/0001-Port-to-jetty-9.patch
new file mode 100644
index 0000000..a54dc84
--- /dev/null
+++ b/0001-Port-to-jetty-9.patch
@@ -0,0 +1,218 @@
+From 2765cae439a217a070dfde55993fa9f11e4e694d Mon Sep 17 00:00:00 2001
+Date: Fri, 22 Feb 2013 10:56:19 +0100
+Subject: [PATCH] Port to jetty 9
+
+---
+ pom.xml | 34 +++++++++++++++++-----
+ .../apache/maven/plugins/site/run/SiteRunMojo.java | 28 +++++++++---------
+ .../plugins/site/deploy/AuthAsyncProxyServlet.java | 6 ++--
+ .../site/deploy/SimpleDavServerHandler.java | 27 +++++++++++------
+ 4 files changed, 62 insertions(+), 33 deletions(-)
+
+diff --git a/pom.xml b/pom.xml
+index 39ff6ae..432b9c5 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -197,6 +197,7 @@ under the License.
+ 1.0
+ 1.5.4
+ 1.4
++ 9.3.8.v20160314
+
+ 2.9.1
+ 2.7
+@@ -387,20 +388,39 @@ under the License.
+
+
+
+- org.mortbay.jetty
+- jetty
+- 6.1.25
++ org.eclipse.jetty
++ jetty-server
++ ${jettyVersion}
+
++
++
++ org.eclipse.jetty
++ jetty-webapp
++ ${jettyVersion}
++
++
++
++ org.eclipse.jetty
++ jetty-servlet
++ ${jettyVersion}
++
++
+
+- org.mortbay.jetty
++ org.eclipse.jetty
+ jetty-util
+- 6.1.25
++ ${jettyVersion}
+
+
+
+- org.mortbay.jetty
++ org.eclipse.jetty
+ jetty-client
+- 6.1.25
++ ${jettyVersion}
++ test
++
++
++ org.eclipse.jetty
++ jetty-proxy
++ ${jettyVersion}
+ test
+
+
+diff --git a/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java b/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java
+index 17ebb3a..2048bec 100644
+--- a/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java
++++ b/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java
+@@ -38,12 +38,13 @@ import org.apache.maven.plugins.annotations.Parameter;
+ import org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo;
+ import org.apache.maven.reporting.exec.MavenReportExecution;
+ import org.codehaus.plexus.util.IOUtil;
+-import org.mortbay.jetty.Connector;
+-import org.mortbay.jetty.Handler;
+-import org.mortbay.jetty.Server;
+-import org.mortbay.jetty.handler.DefaultHandler;
+-import org.mortbay.jetty.nio.SelectChannelConnector;
+-import org.mortbay.jetty.webapp.WebAppContext;
++import org.eclipse.jetty.server.Connector;
++import org.eclipse.jetty.server.Handler;
++import org.eclipse.jetty.server.Server;
++import org.eclipse.jetty.server.handler.DefaultHandler;
++import org.eclipse.jetty.server.handler.HandlerList;
++import org.eclipse.jetty.server.ServerConnector;
++import org.eclipse.jetty.webapp.WebAppContext;
+
+ /**
+ * Starts the site up, rendering documents as requested for faster editing.
+@@ -81,7 +82,7 @@ public class SiteRunMojo
+ Server server = new Server();
+ server.setStopAtShutdown( true );
+
+- Connector defaultConnector = getDefaultConnector();
++ ServerConnector defaultConnector = getDefaultConnector( server );
+ server.setConnectors( new Connector[] { defaultConnector } );
+
+ WebAppContext webapp = createWebApplication();
+@@ -90,10 +91,9 @@ public class SiteRunMojo
+ DefaultHandler defaultHandler = new DefaultHandler();
+ defaultHandler.setServer( server );
+
+- Handler[] handlers = new Handler[2];
+- handlers[0] = webapp;
+- handlers[1] = defaultHandler;
+- server.setHandlers( handlers );
++ HandlerList handlers = new HandlerList();
++ handlers.setHandlers(new Handler[] { webapp, defaultHandler } );
++ server.setHandler( handlers );
+
+ getLog().info( "Starting Jetty on http://localhost:" + port + "/" );
+ try
+@@ -224,11 +224,11 @@ public class SiteRunMojo
+ return webapp;
+ }
+
+- private Connector getDefaultConnector()
++ private ServerConnector getDefaultConnector( Server server )
+ {
+- Connector connector = new SelectChannelConnector();
++ ServerConnector connector = new ServerConnector( server );
+ connector.setPort( port );
+- connector.setMaxIdleTime( MAX_IDLE_TIME );
++ connector.setIdleTimeout( MAX_IDLE_TIME );
+ return connector;
+ }
+
+diff --git a/src/test/java/org/apache/maven/plugins/site/deploy/AuthAsyncProxyServlet.java b/src/test/java/org/apache/maven/plugins/site/deploy/AuthAsyncProxyServlet.java
+index 21775d4..5b6f06b 100644
+--- a/src/test/java/org/apache/maven/plugins/site/deploy/AuthAsyncProxyServlet.java
++++ b/src/test/java/org/apache/maven/plugins/site/deploy/AuthAsyncProxyServlet.java
+@@ -35,8 +35,8 @@ import javax.servlet.http.HttpServletResponse;
+ import org.apache.commons.io.FileUtils;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.maven.plugins.site.deploy.SimpleDavServerHandler.HttpRequest;
+-import org.mortbay.jetty.security.B64Code;
+-import org.mortbay.proxy.AsyncProxyServlet;
++import org.eclipse.jetty.proxy.AsyncProxyServlet;
++import org.eclipse.jetty.util.B64Code;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+
+@@ -108,7 +108,7 @@ public class AuthAsyncProxyServlet
+ if ( proxyAuthorization != null && proxyAuthorization.startsWith( "Basic " ) )
+ {
+ String proxyAuth = proxyAuthorization.substring( 6 );
+- String authorization = B64Code.decode( proxyAuth );
++ String authorization = B64Code.decode( proxyAuth, "UTF-8" );
+ String[] authTokens = authorization.split( ":" );
+ String user = authTokens[0];
+ String password = authTokens[1];
+diff --git a/src/test/java/org/apache/maven/plugins/site/deploy/SimpleDavServerHandler.java b/src/test/java/org/apache/maven/plugins/site/deploy/SimpleDavServerHandler.java
+index 67b22c5..70b6d01 100644
+--- a/src/test/java/org/apache/maven/plugins/site/deploy/SimpleDavServerHandler.java
++++ b/src/test/java/org/apache/maven/plugins/site/deploy/SimpleDavServerHandler.java
+@@ -36,12 +36,13 @@ import javax.servlet.http.HttpServletResponse;
+ import org.apache.commons.io.FileUtils;
+ import org.apache.commons.io.IOUtils;
+ import org.apache.commons.lang3.SystemUtils;
+-import org.mortbay.jetty.Handler;
+-import org.mortbay.jetty.Request;
+-import org.mortbay.jetty.Server;
+-import org.mortbay.jetty.handler.AbstractHandler;
+-import org.mortbay.jetty.servlet.Context;
+-import org.mortbay.jetty.servlet.ServletHolder;
++import org.eclipse.jetty.server.Handler;
++import org.eclipse.jetty.server.Request;
++import org.eclipse.jetty.server.Server;
++import org.eclipse.jetty.server.ServerConnector;
++import org.eclipse.jetty.server.handler.AbstractHandler;
++import org.eclipse.jetty.servlet.ServletContextHandler;
++import org.eclipse.jetty.servlet.ServletHolder;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+
+@@ -100,6 +101,12 @@ public class SimpleDavServerHandler
+
+ ( (Request) request ).setHandled( true );
+ }
++
++ @Override
++ public void handle(String target, Request baseRequest, HttpServletRequest request,
++ HttpServletResponse response) throws IOException, ServletException {
++ handle( target, request, response, 0 );
++ }
+ };
+ server = new Server( 0 );
+ server.setHandler( repoHandler );
+@@ -112,16 +119,18 @@ public class SimpleDavServerHandler
+ {
+ siteTargetPath = null;
+ server = new Server( 0 );
+- Context context = new Context( server, "/", 0 );
+
++ ServletContextHandler context = new ServletContextHandler();
++ context.setContextPath( "/" );
+ context.addServlet( new ServletHolder( servlet ), "/" );
+-
++
++ server.setHandler(context);
+ server.start();
+ }
+
+ public int getPort()
+ {
+- return server.getConnectors()[0].getLocalPort();
++ return ( (ServerConnector)server.getConnectors()[0] ).getLocalPort();
+ }
+
+ public void stop()
+--
+2.7.4
+
diff --git a/maven-site-plugin-3.6-source-release.zip b/maven-site-plugin-3.6-source-release.zip
new file mode 100644
index 0000000..47eae79
Binary files /dev/null and b/maven-site-plugin-3.6-source-release.zip differ
diff --git a/maven-site-plugin.spec b/maven-site-plugin.spec
new file mode 100644
index 0000000..74b12df
--- /dev/null
+++ b/maven-site-plugin.spec
@@ -0,0 +1,68 @@
+Name: maven-site-plugin
+Version: 3.6
+Release: 1
+Summary: Maven Site Plugin
+License: ASL 2.0
+URL: http://maven.apache.org/plugins/maven-site-plugin/
+Source0: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-site-plugin/%{version}/maven-site-plugin-%{version}-source-release.zip
+Patch1: 0001-Port-to-jetty-9.patch
+
+BuildArch: noarch
+BuildRequires: maven-local mvn(commons-io:commons-io) mvn(javax.servlet:servlet-api)
+BuildRequires: mvn(org.apache.commons:commons-lang3)
+BuildRequires: mvn(org.apache.maven.doxia:doxia-decoration-model)
+BuildRequires: mvn(org.apache.maven.doxia:doxia-integration-tools)
+BuildRequires: mvn(org.apache.maven.doxia:doxia-module-xdoc)
+BuildRequires: mvn(org.apache.maven.doxia:doxia-module-xhtml)
+BuildRequires: mvn(org.apache.maven.doxia:doxia-sink-api)
+BuildRequires: mvn(org.apache.maven.doxia:doxia-site-renderer)
+BuildRequires: mvn(org.apache.maven:maven-archiver) mvn(org.apache.maven:maven-artifact)
+BuildRequires: mvn(org.apache.maven:maven-compat) mvn(org.apache.maven:maven-core)
+BuildRequires: mvn(org.apache.maven:maven-model) mvn(org.apache.maven:maven-plugin-api)
+BuildRequires: mvn(org.apache.maven:maven-settings)
+BuildRequires: mvn(org.apache.maven:maven-settings-builder)
+BuildRequires: mvn(org.apache.maven.plugins:maven-plugins:pom:)
+BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin)
+BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
+BuildRequires: mvn(org.apache.maven.reporting:maven-reporting-api)
+BuildRequires: mvn(org.apache.maven.reporting:maven-reporting-exec)
+BuildRequires: mvn(org.apache.maven.shared:maven-shared-utils)
+BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api)
+BuildRequires: mvn(org.codehaus.plexus:plexus-archiver)
+BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds)
+BuildRequires: mvn(org.codehaus.plexus:plexus-component-metadata)
+BuildRequires: mvn(org.codehaus.plexus:plexus-i18n) mvn(org.codehaus.plexus:plexus-utils)
+BuildRequires: mvn(org.eclipse.jetty:jetty-client) mvn(org.eclipse.jetty:jetty-proxy)
+BuildRequires: mvn(org.eclipse.jetty:jetty-server) mvn(org.eclipse.jetty:jetty-servlet)
+BuildRequires: mvn(org.eclipse.jetty:jetty-util) mvn(org.eclipse.jetty:jetty-webapp)
+BuildRequires: mvn(org.sonatype.sisu:sisu-inject-plexus)
+
+%description
+The Maven Site Plugin is a plugin that generates a site for the current project.
+
+%package javadoc
+Summary: Javadoc for %{name}
+%description javadoc
+API documentation for %{name}.
+
+%prep
+%setup -q
+%patch1 -p1
+%pom_change_dep org.eclipse.jetty::: :::provided
+
+%build
+%mvn_build -f
+
+%install
+%mvn_install
+
+%files -f .mfiles
+%dir %{_javadir}/%{name}
+%license LICENSE NOTICE
+
+%files javadoc -f .mfiles-javadoc
+%license LICENSE NOTICE
+
+%changelog
+* Tue Aug 11 2020 maminjie - 3.6-1
+- package init
diff --git a/maven-site-plugin.yaml b/maven-site-plugin.yaml
new file mode 100644
index 0000000..c812f68
--- /dev/null
+++ b/maven-site-plugin.yaml
@@ -0,0 +1,4 @@
+version_control: github
+src_repo: apache/maven-site-plugin
+tag_prefix: "maven-site-plugin-"
+seperator: "."