Untar / Unzip * .tar.xz with ANT

I want to extract a tarball file with * .tar.xz with ant.

But I can find, bunzip2, gunzip, unzip and untar as targets in ant and none of them work.

So how can I expand a tarball file with * .tar.xz using ant?

+3


source to share


2 answers


XZ format is not supported by default Ant distribution, you will need Apache Compress Antlib .

Download the complete Antlib with all dependencies from here (add three cans ant-compress

, common-compress

, xz

in lib

your ant) and use this task:



<target name="unxz">
    <cmp:unxz src="foo.tar.xz" xmlns:cmp="antlib:org.apache.ant.compress"/>
    <untar src="foo.tar" dest="."/>
    <delete file="foo.tar"/>
</target>

      

You must use this two-step process because even with the optional Ant library, the value "xz"

is still not supported by the compression

task attribute untar

, the task you would normally use to extract compressed resins.

+3


source


If someone else like me wants to do the same with maven ant management.



<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <dependencies>
<!--    Optional:   May want to use more up to date commons compress, add this dependency
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.10</version>
        </dependency> -->
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-compress</artifactId>
            <version>1.4</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>generate-sources</phase>
            <goals><goal>run</goal></goals>
            <configuration>
                <target name="unpack">
                    <taskdef resource="org/apache/ant/compress/antlib.xml" classpathref="maven.plugin.classpath"/>
                    <unxz src="${xz.download.file}" dest="${tar.unpack.directory}" />
                    <untar src="${tar.unpack.file}" dest="${final.unpack.directory}"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

      

+3


source







All Articles