diff --git a/plugin.xml b/plugin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d8d18dd3bf02bbc3e2f50a89eaa17be76913995e
--- /dev/null
+++ b/plugin.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="plugin" basedir=".">
+	<!-- Maven Repository -->
+	<property name="maven.snapshot.repo.url" value="https://oss.sonatype.org/content/repositories/snapshots" />
+	<property name="maven.release.repo.url" value="http://central.maven.org/maven2" />
+
+	<target name="install.plugins">
+		<mkdir dir="${basedir}/target/plugins" />
+		<delete dir="${basedir}/plugins" />
+		<mkdir dir="${basedir}/plugins" />
+		<!-- analysis-kuromoji-neologd -->
+		<antcall target="install.plugin">
+			<param name="repo.url" value="${maven.snapshot.repo.url}" />
+			<param name="plugin.groupId" value="org/codelibs" />
+			<param name="plugin.name" value="analysis-kuromoji-neologd" />
+			<param name="plugin.version" value="2.1.0-SNAPSHOT" />
+			<param name="plugin.zip.version" value="2.1.0-20151202.081803-4" />
+		</antcall>
+		<!-- analysis-synonym -->
+		<antcall target="install.plugin">
+			<param name="repo.url" value="${maven.snapshot.repo.url}" />
+			<param name="plugin.groupId" value="org/codelibs" />
+			<param name="plugin.name" value="analysis-synonym" />
+			<param name="plugin.version" value="2.1.0-SNAPSHOT" />
+			<param name="plugin.zip.version" value="2.1.0-20151202.052345-4" />
+		</antcall>
+		<!-- configsync -->
+		<antcall target="install.plugin">
+			<param name="repo.url" value="${maven.snapshot.repo.url}" />
+			<param name="plugin.groupId" value="org/codelibs" />
+			<param name="plugin.name" value="configsync" />
+			<param name="plugin.version" value="2.1.0-SNAPSHOT" />
+			<param name="plugin.zip.version" value="2.1.0-20151127.054727-1" />
+		</antcall>
+		<!-- dataformat -->
+		<antcall target="install.plugin">
+			<param name="repo.url" value="${maven.snapshot.repo.url}" />
+			<param name="plugin.groupId" value="org/codelibs" />
+			<param name="plugin.name" value="dataformat" />
+			<param name="plugin.version" value="2.1.0-SNAPSHOT" />
+			<param name="plugin.zip.version" value="2.1.0-20151201.002307-2" />
+		</antcall>
+		<!-- langfield -->
+		<antcall target="install.plugin">
+			<param name="repo.url" value="${maven.snapshot.repo.url}" />
+			<param name="plugin.groupId" value="org/codelibs" />
+			<param name="plugin.name" value="langfield" />
+			<param name="plugin.version" value="2.1.0-SNAPSHOT" />
+			<param name="plugin.zip.version" value="2.1.0-20151129.210553-1" />
+		</antcall>
+		<!-- kopf -->
+		<get dest="${basedir}/target/plugins">
+			<url url="http://maven.codelibs.org/archive/elasticsearch/plugin/kopf/elasticsearch-kopf-2.0.0.0.zip" />
+		</get>
+		<unzip dest="${basedir}/plugins/kopf" src="${basedir}/target/plugins/elasticsearch-kopf-2.0.0.0.zip" />
+	</target>
+
+	<target name="install.plugin">
+		<get dest="${basedir}/target/plugins">
+			<url url="${repo.url}/${plugin.groupId}/elasticsearch-${plugin.name}/${plugin.version}/elasticsearch-${plugin.name}-${plugin.zip.version}.zip" />
+		</get>
+		<unzip dest="${basedir}/plugins/${plugin.name}" src="${basedir}/target/plugins/elasticsearch-${plugin.name}-${plugin.zip.version}.zip" />
+	</target>
+</project>
diff --git a/pom.xml b/pom.xml
index 2bc79f63a3cef9b3feee7fc6339a4242f0edb8fe..9e18cfa4ab8c7981093ed11d80f7d5e0598477ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,10 +69,6 @@
 
 		<!-- Tomcat -->
 		<tomcat.boot.version>0.3.9</tomcat.boot.version>
-
-		<!-- Maven Repository -->
-		<maven.snapshot.repo.url>https://oss.sonatype.org/content/repositories/snapshots</maven.snapshot.repo.url>
-		<maven.release.repo.url>http://central.maven.org/maven2</maven.release.repo.url>
 	</properties>
 	<build>
 		<finalName>fess</finalName>
@@ -278,21 +274,7 @@
 				</dependencies>
 				<configuration>
 					<tasks>
-						<mkdir dir="${basedir}/target/plugins" />
-						<get dest="${basedir}/target/plugins">
-							<url url="${maven.snapshot.repo.url}/org/codelibs/elasticsearch-analysis-kuromoji-neologd/2.1.0-SNAPSHOT/elasticsearch-analysis-kuromoji-neologd-2.1.0-20151127.223316-1.zip" />
-							<url url="${maven.snapshot.repo.url}/org/codelibs/elasticsearch-analysis-synonym/2.1.0-SNAPSHOT/elasticsearch-analysis-synonym-2.1.0-20151127.081411-1.zip" />
-							<url url="${maven.snapshot.repo.url}/org/codelibs/elasticsearch-configsync/2.1.0-SNAPSHOT/elasticsearch-configsync-2.1.0-20151127.054727-1.zip" />
-							<url url="${maven.snapshot.repo.url}/org/codelibs/elasticsearch-langfield/2.1.0-SNAPSHOT/elasticsearch-langfield-2.1.0-20151129.210553-1.zip" />
-							<url url="http://maven.codelibs.org/archive/elasticsearch/plugin/kopf/elasticsearch-kopf-2.0.0.0.zip" />
-						</get>
-						<delete dir="${basedir}/plugins" />
-						<mkdir dir="${basedir}/plugins" />
-						<unzip dest="${basedir}/plugins/analysis-kuromoji-neologd" src="${basedir}/target/plugins/elasticsearch-analysis-kuromoji-neologd-2.1.0-20151127.223316-1.zip" />
-						<unzip dest="${basedir}/plugins/analysis-synonym" src="${basedir}/target/plugins/elasticsearch-analysis-synonym-2.1.0-20151127.081411-1.zip" />
-						<unzip dest="${basedir}/plugins/configsync" src="${basedir}/target/plugins/elasticsearch-configsync-2.1.0-20151127.054727-1.zip" />
-						<unzip dest="${basedir}/plugins/langfield" src="${basedir}/target/plugins/elasticsearch-langfield-2.1.0-20151129.210553-1.zip" />
-						<unzip dest="${basedir}/plugins/kopf" src="${basedir}/target/plugins/elasticsearch-kopf-2.0.0.0.zip" />
+						<ant antfile="${basedir}/plugin.xml" target="install.plugins"/>
 					</tasks>
 				</configuration>
 				<goals>