11
votes

Comment puis-je utiliser la tâche TAR ANT et préserver les autorisations de fichier?

Bien sûr, il peut être fait à l'aide de la tâche EXEC , mais ma question est la suivante:

est-il possible de le faire en utilisant la tâche tar?


0 commentaires

3 Réponses :


15
votes

Je ne pense pas qu'il existe un moyen de conserver les autorisations existantes, par cette note de la Copier la tâche :

UNIX Remarque: Les autorisations de fichier ne sont pas conservées lorsque des fichiers sont copiés; Ils se retrouvent avec les autorisations d'omasque par défaut. Ceci est causé par le manque de moyens d'interroger ou de définir des autorisations de fichier dans les roulements actuels Java. Si vous avez besoin d'une fonction de copie de préservation de permission, utilisez à la place.

Cependant, le Tâche TAR peut prendre un ou plusieurs tarfileSet éléments. TarfileSet peut être défini avec un filemode Dirmode attribut pour spécifier les autorisations UNIX. Si vous spécifiez plusieurs inclut la correspondance uniquement de ces fichiers pour obtenir chaque ensemble d'autorisations requises, les fichiers de cet ensemble seront inclus dans ces autorisations.


0 commentaires

14
votes

Ce manque d'autorisation fait presque inutiles la tâche de goudron. Il n'y a aucun moyen de le faire sans exécuter le goudron du système d'exploitation avec la tâche EXEC : xxx

Il existe des binaires GNU TAR pour presque tous les systèmes d'exploitation connus de l'homme. Mettez l'un d'eux dans votre système de contrôle de version et utilisez-le en fonction de votre système d'exploitation. Oui, la fourmi devra fourrer un processus chaque fois qu'il est exécuté.


4 commentaires

Pourquoi cela a-t-il été évolué? Parfaitement bonne solution à ce problème - upvoting


Il était probablement probablement évité car le répondeur n'a pas lu la question suivante: "Bien sûr, il peut être fait en utilisant la tâche EXEC"


Les fourmi sont complètement inutiles. Je comprends pourquoi (Java ne peut pas lire les autorisations de fichier ou des ordures), mais cela ne rend pas utile de réécriter toutes mes autorisations simplement parce que je veux goudronner. Cela devrait être la bonne réponse.


Ce n'est pas vraiment une Sollution ne fonctionnera que sur le système d'exploitation avec des bacs de goudron disponibles si je veux pouvoir construire sur n'importe quelle plate-forme?



8
votes

Utilisation de TarfileSet travaillé pour notre projet. Voici un exemple de travail au cas où quelqu'un en a besoin: xxx

Dans cet exemple, incluseList.txt est utilisé pour indiquer quels fichiers à inclure dans le fichier tar. Tous les fichiers avec * .sh extension auront une autorisation de lecture et d'exécution (550) pour l'utilisateur et le groupe.

espère que cela aide quelqu'un.


2 commentaires

Laisse-moi deviner: Ivy + Gitensitories? Parce que c'est ce qui m'a amené à cette question.


Cela devrait être la réponse! C'est la bonne façon de le faire