Używam ant 1.6.2 i próbuję skonfigurować zadanie, które porówna katalog źródłowy i docelowy, zidentyfikuje wszystkie podkatalogi istniejące w katalogu źródłowym i usunie podobne podkatalogi w katalogu docelowym.Jak wybrać podkatalogi w ant używając FileSet?
Tak, więc katalog źródłowy ma podkatalogi sub1, sub2 i sub3 w nim, a katalog docelowy ma sub1, sub2, sub3 i sub4 w nim, a następnie chciałbym usunąć sub1, sub2 i sub3 z cel docelowy
Myślałem, że mogę to zrobić, używając FileSelector do identyfikacji wszystkich katalogów źródłowych, które są obecne w celu. Jednak nie mogę uzyskać selektora pliku typu <, aby kiedykolwiek zwrócić dopasowanie do katalogów.
Ostatecznie pomyślałem, że zrobię coś takiego:
<fileset id="dirSelector" dir="${install.dir}">
<type type="dir"/>
<present targetdir="${dist.dir}"/>
</fileset>
zacząłem po prostu próbuje listy katalogów znajdujących się w katalogu ze źródłami i wydrukować je:
<fileset id="dirSelector" dir="${install.dir}">
<type type="dir"/>
</fileset>
<property name="selected" refid="dirSelector" />
<echo>Selected: ${selected}</echo>
jednak Nigdy nie dostaję niczego wydrukowanego z ustawionym typem na katalog. Jeśli zmienię typ na plik, pliki zostaną wydrukowane.
Czy istnieje lepszy sposób na wykonanie tego, co próbuję wykonać? Czy brakuje mi czegoś w moim używaniu selektora typu?
Dzięki za pomoc. Obecnie nie używam biblioteki programu contrib, więc pomyślałem, że najpierw wypróbuję niestandardową trasę, którą zasugerowałeś. To okazało się dość łatwe i dobrze się spisało. Dzięki. –
@EricRosenberg Czy możesz przesłać niestandardowe zadanie jako odpowiedź? To działa dobrze z SO, a byłoby to coś, czego szukamy. –
@OzairKafray Przepraszamy, ale nie mam już dostępu do implementacji niestandardowego zadania. –