Сохраните полномочия файла при разархивации и файлы архивирования с помощью муравья

Я пишу муравью файл build.xml, который делает следующее:

  • Берет заархивированную папку (.zip)
  • Разархивировал его
  • Добавляют много файлов
  • Zip получающиеся файлы

Извлечение кода из build.xml:

<!-- Unzip SDK to a temporary directory -->
<unzip src="${zipFile}" dest="tmp"/>

<!-- pull in the files from another directory -->
<copy todir="tmp/someDirectory" >
  <fileset dir="${addedFiles}" />
</copy>

<!-- Zip up modified SDK -->
<zip destfile="${destDir}" basedir="tmp"/>

Это все работает отлично, за исключением того, что сет полномочий для заархивированных файлов до выполнения сборки муравья проигран в zip-файле, созданном сборкой муравья. Например, файлы, которые не были ранее исполняемым файлом больше.

Так мой вопрос: действительно ли возможно использовать муравья, чтобы добавить файлы к архиву zip, не уничтожая полномочия уже существующих файлов?

Я использую Муравья 1.7.1

10
задан pheelicks 2 March 2010 в 18:21
поделиться

2 ответа

Оказалось, что ant уничтожает всю информацию о разрешениях при распаковке из-за ограничения в Java. Однако возможно добавление файлов в существующий zip-файл с сохранением разрешений существующих файлов:

<!-- Add to zip -->
<zip destfile="${existingZipFiledirectory}.zip"
   basedir="${directoryOfFilesToAdd}"
   update="true"
/>

Приведенный выше сценарий обновляет указанный zip-файл содержимым в basedir, сохраняя разрешения файлов в оригинальном zip.

3
ответ дан 3 December 2019 в 20:41
поделиться

Насколько я знаю, эта функция (preserve0permissions) была введена в Ant 1.8. Предыдущие версии Ant не сохраняли разрешения.

Если вы застряли на Ant 1.7.1, вы можете использовать Tar, который - если я не ошибаюсь - сохраняет разрешения.

-1
ответ дан 3 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: