diff --git a/ivy.xml b/ivy.xml
new file mode 100644
index 0000000..4f5fec9
--- /dev/null
+++ b/ivy.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You 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.
+
+-->
+<ivy-module version="2.0">
+  <info organisation="Apache Ant"
+        module="${artifact.name}"
+        revision="${artifact.version}"
+        publication="${artifact.publication.datetime}">
+    <license name="Apache Software License 2.0"
+             url="http://www.apache.org/licenses/LICENSE-2.0"/>
+    <ivyauthor name="Apache Ant Development Team"
+               url="http://ant.apache.org/"/>
+    <description homepage="http://ant.apache.org/antlibs/compress/">
+      Provides tasks and types that deal with AR, ARJ, CPIO, TAR,
+      DUMP, 7Z and ZIP archives as well as BZIP2, PACK200, GZIP, LZMA
+      and XZ compressed files based on Apache Commons Compress.
+    </description>
+  </info>
+  <configurations>
+		<conf name="default" description="full antlib with all dependencies"/>
+		<conf name="test" description="dependencies used for junit testing the antlib" visibility="private" />
+  </configurations>
+  <publications xmlns:e="urn:ant.apache.org:ivy-extras">
+    <artifact name="${artifact.name}" type="pom" ext="pom"/>
+    <artifact name="${artifact.name}" type="pom.asc" ext="pom.asc"/>
+    <artifact name="${artifact.name}" type="jar" ext="jar"/>
+    <artifact name="${artifact.name}" type="jar.asc" ext="jar.asc"/>
+    <artifact name="${artifact.name}" type="source" ext="jar"
+              e:classifier="sources"/>
+    <artifact name="${artifact.name}" type="source.asc" ext="jar.asc"
+              e:classifier="sources"/>
+    <artifact name="${artifact.name}" type="javadoc" ext="jar"
+              e:classifier="javadoc"/>
+    <artifact name="${artifact.name}" type="javadoc.asc" ext="jar.asc"
+              e:classifier="javadoc"/>
+    <artifact name="${artifact.name}" type="ivy" ext="xml"
+              e:classifier="ivy"/>
+    <artifact name="${artifact.name}" type="ivy.asc" ext="xml.asc"
+              e:classifier="ivy"/>
+  </publications>
+  <dependencies>
+    <dependency org="org.apache.commons" name="commons-compress" rev="1.8" conf="default"/>
+    <dependency org="org.tukaani" name="xz" rev="1.5" conf="default"/>
+    <dependency org="junit" name="junit" rev="4.11" conf="test->default"/>
+  </dependencies>
+</ivy-module>
