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

У многих zip-файлов есть корневая папка. Как мне распаковать zip-файл и избавиться от корневой папки?

Я знаю, что есть globmapper:

<unzip dest="${dest.path}">
    <fileset dir="${source.path}">
        <include name="**/zipfile*.*.zip" />
    </fileset>
    <mapper>
        <globmapper from="rootFolder/*" to="*" />
    </mapper>
</unzip>

Но что, если я не знаю имя корневой папки? Подстановочные знаки не работают, например.

<globmapper from="root*Folder/*" to="*" />

Есть ли способ использовать подстановочные знаки или карту/функцию, которая упаковывает без корневой папки?


person flavio.donze    schedule 31.03.2014    source источник


Ответы (1)


На самом деле для этого создан отдельный маппер, который называется cutdirsmapper. Попробуйте это:

<unzip dest="${dest.path}">
    <fileset dir="${source.path}">
        <include name="**/zipfile*.*.zip" />
    </fileset>
    <cutdirsmapper dirs="1" />
</unzip>
person CAustin    schedule 31.03.2014
comment
именно то, что я искал, спасибо! не знаю, как я пропустил это на странице ant mapper... - person flavio.donze; 01.04.2014
comment
cutdirsmapper доступен с версии ant 1.8.2: stackoverflow.com/a/31837382/435605 - person AlikElzin-kilaka; 14.04.2016
comment
классно. Спасибо - person Gábor Lipták; 07.03.2018