diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 8c690af..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,193 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-<!--
-Copyright (C) 2012 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>com.googlesource.gerrit.plugins.gitblit</groupId>
-  <artifactId>gitblit-plugin</artifactId>
-  <description>GitBlit for Gerrit integrated as a plugin</description>
-  <name>Gerrit - GitBlit Plugin</name>
-  <version>2.12</version>
-  <licenses>
-    <license>
-      <name>Apache License 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
-    </license>
-  </licenses>
-  <properties>
-    <Gerrit-ApiType>plugin</Gerrit-ApiType>
-    <Gerrit-ApiVersion>${project.version}</Gerrit-ApiVersion>
-    <Gerrit-ReloadMode>restart</Gerrit-ReloadMode>
-    <Gerrit-InitStep>com.googlesource.gerrit.plugins.gitblit.GitBlitInitStep</Gerrit-InitStep>
-    <Gerrit-Module>com.googlesource.gerrit.plugins.gitblit.GitBlitModule</Gerrit-Module>
-    <Gerrit-HttpModule>com.googlesource.gerrit.plugins.gitblit.GitBlitServletModule</Gerrit-HttpModule>
-    <wicket.version>1.4.23</wicket.version>
-    <GitBlit-Version>1.7.1</GitBlit-Version>
-  </properties>
-  <dependencies>
-    <dependency>
-      <groupId>com.google.gerrit</groupId>
-      <artifactId>gerrit-plugin-api</artifactId>
-      <version>${Gerrit-ApiVersion}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.gitblit</groupId>
-      <artifactId>gitblit</artifactId>
-      <version>${GitBlit-Version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.wicket</groupId>
-      <artifactId>wicket</artifactId>
-      <version>${wicket.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.wicket</groupId>
-      <artifactId>wicket-auth-roles</artifactId>
-      <version>${wicket.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.wicket</groupId>
-      <artifactId>wicket-extensions</artifactId>
-      <version>${wicket.version}</version>
-    </dependency>
-  </dependencies>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-        <includes>
-          <include>**/*.md</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>false</filtering>
-        <excludes>
-          <exclude>**/*.md</exclude>
-        </excludes>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>2.7</version>
-        <configuration>
-          <escapeString>\</escapeString>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>2.5.1</version>
-        <configuration>
-          <source>1.7</source>
-          <target>1.7</target>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>2.4</version>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>1.6</version>
-        <configuration>
-          <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
-          <artifactSet>
-            <excludes>
-              <exclude>org.bouncycastle:*</exclude>
-              <exclude>org.slf4j:*</exclude>
-              <exclude>com.google.guava:*</exclude>
-              <exclude>org.eclipse.jgit:*</exclude>
-              <exclude>log4j:*</exclude>
-              <exclude>com.google.code.gson:*</exclude>
-              <exclude>com.googlecode.javaewah:*</exclude>
-              <exclude>com.jcraft:*</exclude>
-              <exclude>javax.servlet:*</exclude>
-              <exclude>org.apache.lucene:lucene-core</exclude>
-              <exclude>org.apache.lucene:lucene-analyzers-common</exclude>
-              <exclude>org.apache.lucene:lucene-queries</exclude>
-              <exclude>org.apache.lucene:lucene-queryparser</exclude>
-              <exclude>org.apache.sshd:*</exclude>
-              <exclude>org.apache.mina:*</exclude>
-              <exclude>org.bouncycastle:*</exclude>
-              <exclude>com.google.inject:*</exclude>
-              <exclude>com.google.inject.extensions:*</exclude>
-              <exclude>javax.inject:*</exclude>
-              <exclude>aopalliance:*</exclude>
-              <exclude>org.pegdown:*</exclude>
-              <exclude>org.parboiled:*</exclude>
-              <exclude>commons-io:commons-io</exclude>
-              <exclude>commons-codec:commons-codec</exclude>
-              <exclude>args4j:args4j</exclude>
-              <exclude>org.apache.commons:commons-compress</exclude>
-              <exclude>org.tukaani:xz</exclude>
-              <exclude>org.ow2.asm:*</exclude>
-              <exclude>org.eclipse.jetty.aggregate:*</exclude>
-            </excludes>
-          </artifactSet>
-          <transformers>
-            <transformer
-              implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-              <manifestEntries>
-                <Gerrit-PluginName>gitblit</Gerrit-PluginName>
-                <Gerrit-Module>${Gerrit-Module}</Gerrit-Module>
-                <Gerrit-HttpModule>${Gerrit-HttpModule}</Gerrit-HttpModule>
-                <Gerrit-InitStep>${Gerrit-InitStep}</Gerrit-InitStep>
-                <Implementation-Vendor>Gerrit Code Review</Implementation-Vendor>
-                <Implementation-URL>http://code.google.com/p/gerrit/</Implementation-URL>
-                <Implementation-Title>Plugin ${project.artifactId}</Implementation-Title>
-                <Implementation-Version>${project.version}</Implementation-Version>
-                <Gerrit-ApiType>${Gerrit-ApiType}</Gerrit-ApiType>
-                <Gerrit-ApiVersion>${Gerrit-ApiVersion}</Gerrit-ApiVersion>
-                <Gerrit-ReloadMode>${Gerrit-ReloadMode}</Gerrit-ReloadMode>
-              </manifestEntries>
-            </transformer>
-          </transformers>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <repositories>
-    <repository>
-      <id>gerrit-api-repository</id>
-      <url>https://gerrit-api.commondatastorage.googleapis.com/release</url>
-    </repository>
-    <repository>
-      <id>gerritforge-gitblit-repository</id>
-      <url>http://gerritforge.com/snapshot/</url>
-    </repository>
-    <repository>
-      <id>jgit-snapshots</id>
-      <url>https://repo.eclipse.org/content/groups/snapshots</url>
-    </repository>
-  </repositories>
-
-</project>
