Как я могу распаковать конкретную папку? - PullRequest
13 голосов
/ 22 октября 2010

Как мне разархивировать определенную папку с помощью Ant?

В частности, я скачал apache-tomcat-6.0.29.zip, в котором находится папка "apache-tomcat-6.0.29". Я хочу, чтобы Ant распаковал все под «apache-tomcat-6.0.29», но не включал «apache-tomcat-6.0.29» в верхнюю часть иерархии.

Я перепробовал несколько вещей, но я не могу заставить его работать.

Вот моя последняя попытка:

<unzip dest="${release.dir}/image/tomcat" src="${tomcat.zip}">
    <patternset>
        <include name="apache-tomcat-6.0.29/*"/>
    </patternset>
</unzip>

Есть идеи?

Ответы [ 3 ]

12 голосов
/ 22 октября 2010

Вы можете использовать mapper в задаче распаковки, чтобы изменить записанные пути.

<unzip dest="${release.dir}/image/tomcat" src="${tomcat.zip}">
    <patternset>
        <include name="apache-tomcat-6.0.29/*"/>
    </patternset>
    <mapper>
        <globmapper from="apache-tomcat-6.0.29/*" to="*"/>
    </mapper>
</unzip>
3 голосов
/ 27 марта 2014

Следующее работает до тех пор, пока в архиве Tomcat есть один каталог.

<untar src="${release.dir}" dest="${tomcat.tar.gz}" compression="gzip">
  <cutdirsmapper dirs="1" />
</untar>
0 голосов
/ 03 февраля 2015
<unzip dest="${release.dir}/image/tomcat" src="${tomcat.zip}">
    <patternset>
        <!-- add another star -->
        <include name="apache-tomcat-6.0.29/**"/>
    </patternset>
</unzip>
...