Kiedyś copydirkopiowałem drzewo katalogów, ale jest przestarzałe. Mój katalog zawiera kilka podkatalogów, a niektóre z nich zawierają pliki, a inne zawierają więcej podkatalogów.
Wygląda na to, że chcesz wykonać kopię rekurencyjną. I to jest rozwiązanie, które dał Wszechobecny. Więcej osób może znaleźć to pytanie, jeśli pojawiło się w nim słowo „rekurencyjny”.
najwyraźniej includesnie jest to konieczne, gdy chcesz wszystkiego (zobacz odpowiedź użytkownika s1n )
Abel
40
To kopiuje zawartość {src.dir}, ale nie rzeczywisty katalog
cmcginty,
Nie ma kopii, ale to treść.
A-Live
Ponieważ jesteś zaakceptowaną odpowiedzią, możesz ją poprawić, aby stała się poprawną odpowiedzią (odpowiedź ery jest poprawna) ;-)
Christian Fries
Rozumiem, że ideą SO jest kolektywna kuracja, dlatego każdy może edytować czyjeś pytanie (chociaż potrzebujesz dużo przedstawiciela, aby pominąć recenzję edycji).
to powinna być PRAWIDŁOWA odpowiedź. Inna odpowiedź dotyczy pytania „Jak skopiować zawartość katalogu za pomocą programu Ant”. Jest subtelna różnica.
cmcginty
„to powinna być PRAWIDŁOWA odpowiedź”: Oczywiście, chociaż różnica nie jest tak subtelna, gdy nie możesz załadować zasobów za pomocą oczekiwanych nazw ścieżek.
Jim Pivarski,
1
nie działa dla mrówki 1.8, wydaje się, że nic się nie stało.
CCC
8
@CCC upewnij się, że $ {src.dir} jest względne w stosunku do $ {src.dir.parent}, a nie pełna ścieżka
Mike Demenok
bardzo mylące jak x.parentma nie być parentz x... -_-
nonchip
25
Powinieneś tylko określić katalog (bez właściwości include):
Dobra uwaga: ant skopiuje podkatalogi tylko wtedy, gdy pliki źródłowe są nowsze niż pliki docelowe. [1] W moim przypadku podkatalogi nie były kopiowane (używam verbose = "true"), ponieważ nie było żadnych zmian i były już w miejscu docelowym. Możesz użyć „overwrite”, aby wymusić to, lub dotknąć niektórych plików w źródłowych katalogach podrzędnych.
Kolejnym zadaniem mrówek jest Copydir . Kluczową częścią jest dołączenie nazwy katalogu, który chcesz skopiować po katalogu docelowym. Podkatalogi i pliki zostaną skopiowane automatycznie.
Odpowiedzi:
uwierz, że zrobi to, co chcesz ... (kopia rekurencyjna wykonana)
źródło
includes
nie jest to konieczne, gdy chcesz wszystkiego (zobacz odpowiedź użytkownika s1n )Skopiuj zawartość, w tym sam katalog.
Uwaga: $ {src.dir} jest odniesieniem do $ {src.dir.parent}, a nie pełną ścieżką
źródło
x.parent
ma nie byćparent
zx
... -_-Powinieneś tylko określić katalog (bez właściwości include):
Więcej szczegółów i przykładów znajdziesz w instrukcji .
źródło
Skopiuj zawartość, w tym sam katalog.
źródło
Dobra uwaga: ant skopiuje podkatalogi tylko wtedy, gdy pliki źródłowe są nowsze niż pliki docelowe. [1] W moim przypadku podkatalogi nie były kopiowane (używam verbose = "true"), ponieważ nie było żadnych zmian i były już w miejscu docelowym. Możesz użyć „overwrite”, aby wymusić to, lub dotknąć niektórych plików w źródłowych katalogach podrzędnych.
źródło
Użyłem tagów dołączania, jak pokazano na poniższym fragmencie kodu w moim pliku build.xml, aby skopiować pojedyncze pliki jar do katalogu.
źródło
Z przykładu tutaj można napisać prosty plik, używając Ant zadanie kopiowania.
Powinno to skopiować wszystko, co jest w środku
src_dir
(z wyłączeniem tego) donew/dir
.źródło
Dodaję bardziej ogólny wzorzec, aby skopiować wszystkie podfoldery.
Aby uzyskać szczegółowe informacje, zobacz Wzory .
źródło
Kolejnym zadaniem mrówek jest Copydir . Kluczową częścią jest dołączenie nazwy katalogu, który chcesz skopiować po katalogu docelowym. Podkatalogi i pliki zostaną skopiowane automatycznie.
źródło
Ten kod powinien skopiować folder, a także jego zawartość. Używa również zadania basename, aby uniknąć konieczności ręcznego analizowania ścieżki.
źródło
W końcu skopiowałem używając następującego kodu
Spowoduje to skopiowanie folderu src z dist do build.
Mam nadzieję, że to komuś pomoże.
źródło