Piszę ant build.xml plik, który wykonuje następujące czynności:zachowuj uprawnienia plików podczas rozpakowywania i skompresowanie plików przy użyciu ant
- Bierze spakowany folder (.zip)
- rozpina go
- Dodaje liczbę plików
- suwakami się powstałych plików
wyciąg z kodem z 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"/>
Wszystko działa idealnie, z tym że uprawnienia ustawione dla spakowanych plików przed uruchomieniem kompilacji ant są tracone w pliku zip utworzonym przez kompilację ant. Na przykład pliki, które wcześniej były wykonywalne, już nie są.
Moje pytanie: czy można użyć mrówki do dodawania plików do archiwum zip bez niszczenia uprawnień już istniejących plików?
używam Ant 1.7.1
Nie, "preserve0permissions" jest inne, ma to związek z przypadkiem, w którym dodajesz wpisy do jednego pliku zip z innego (używając ''). Ant zawsze był w stanie kopiować uprawnienia z jednego zip do drugiego, ale przed Ant 1.8, jeśli źródłowy plik zip miał zerową wartość w polu uprawnień dla danego wpisu, pozycja w pliku docelowym byłaby zawsze tworzona z domyślnymi uprawnieniami (zwykle 644 lub 755). 'preserve0permissions =" yes "' zamiast tego zachowa wartość zerową w docelowym pliku zip. –