Задача Ant unzip - как я могу исключить имя архива из извлеченной иерархии? - PullRequest
2 голосов
/ 03 июля 2010

Как я могу исключить имя архива из иерархии файлов после задания ant unzip?

Например, когда ant запустит задачу unzip в папке C:\temp, я хочу, чтобы все файлы из архиваархив, но вместо этого я получаю C:\temp\t\file.tmp.

Можно ли эффективно исключить базовый каталог из архива?

Ответы [ 3 ]

3 голосов
/ 04 июля 2010

Используйте маппер, укажите, как файлы должны выглядеть в каталоге назначения:

<unzip src="t.zip" dest="temp">
    <globmapper from="t/*" to="*"/>
</unzip>
2 голосов
/ 25 сентября 2012

Лучшим решением сейчас является cutdirsmapper :

<unzip src="t.zip" dest="temp">
    <cutdirsmapper dirs="1"/>
</unzip>
1 голос
/ 05 февраля 2016

Я использую:

<mapper type="flatten" />   


См. Также https://www.safaribooksonline.com/library/view/ant-the-definitive/0596001843/ch04s10.html

Сглаживающая таблица удаляет всю информацию о пути из имен файлов.

Например, в build.xml:

<target name="extract-xsd">
    <unzip src="./cache/nl.packagename.example/xx/jars/somepackage.jar" dest="repository">
        <mapper type="flatten" />
        <patternset>
            <include name="**/Example.xsd"/>
            <include name="**/Example.wsdl"/>
        </patternset>
    </unzip>
</target>

В результате файлы Example.xsd и Example.wsdl помещаются непосредственно в папку репозитория.

...