To brzmi dla mnie trochę daleko, ale czy istnieje zadanie ANT do oglądania katalogu zmian, a następnie uruchamiania określonej klasy ANT, gdy katalog się zmienia?Czy istnieje zadanie ANT do oglądania katalogu zmian?
Odpowiedz
Jeśli pliki mogą być dodawane lub zmieniane tylko w obserwowanym katalogu, można użyć tego prostego zadania OutOfDate z antcontrib.
<property name="watched-dir.flagfile"
location="MUST be not in watched dir"/>
<outofdate>
<sourcefiles>
<fileset dir="watched-dir"/>
</sourcefiles>
<targetfiles>
<pathelement location="${watched-dir.flagfile}"/>
</targetfiles>
<sequential>
<!--Tasks when something changes go here-->
<touch file="${watched-dir.flagfile}"/>
</sequential>
</outofdate>
Jeśli pliki mogą zniknąć z obserwowanym-dir, to masz bardziej skomplikowany problem, który można rozwiązać poprzez stworzenie struktury katalogów cieniu obserwowanych katalogu i sprawdzenie, czy jego zgodne z obserwowanym-dir. To zadanie jest bardziej skomplikowane, ale dam wam skrypt do tworzenia katalogu cień, ponieważ nie jest to proste:
<property name="TALK" value="true"/>
<property name="shadow-dir"
location="MUST be not in watched dir"/>
<touch
mkdirs="true"
verbose="${TALK}"
>
<fileset dir="watched-dir">
<patterns/>
<type type="file"/>
</fileset>
<!-- That's the tricky globmapper to make touch task work -->
<globmapper from="*" to="${shadow-dir}/*"/>
</touch>
<!--
Due to how touch task with mapped fileset is implemented, it
truncates file access times down to a milliseconds, so if you
would have used outofdate task on shadow dir it would always
show that something is out of date.
Because of that, touching all files in ${shadow-dir} again fixes
that chicken and egg problem.
-->
<touch verbose="${TALK}">
<fileset dir="${shadow-dir}"/>
</touch>
Z cienia utworzonego katalogu, Zostawię za zadanie sprawdzanie spójności katalogu jako ćwiczenie dla czytelnika.
Nie ma znaczenia, czy katalog docelowy ma starsze pliki niż katalog źródłowy. Chcę wykonać zadanie ant, które będzie obserwować katalog, a kiedy zapiszę zmiany w pliku w edytorze, zadzwoni on do konkretnego zadania ante. – leeand00
Być może będziesz mógł skorzystać z zadania Waitfor
, aby osiągnąć to, co chcesz. Blokuje się, dopóki nie spełni się jeden lub więcej warunków (takich jak obecność określonego pliku).
Można łączyć zadania apply z fileset selector
<apply executable="somecommand" parallel="false">
<srcfile/>
<fileset dir="${watch.dir}">
<modified/>
</fileset>
</apply>
The zestawu plików sprawdzi pliki przeciwko przechowywanej sumy kontrolnej MD5 dla zmian. Będziesz musiał umieścić ANT w pętli, aby wielokrotnie uruchamiać tę kontrolę. to jest łatwe do zrobienia w Unix:
while true
> do
> ant
> sleep 300
> done
Tak istnieje Ant zadanie, które będzie to zrobić:
https://github.com/chubbard/WatchTask
Wymaga 1.7+. Może oglądać dowolną liczbę zestawów plików i wywoływać dowolny cel w zależności od tego, z którego zestawu plików pochodzi.
Nie ma licencji ... :( –
@JethroLarson teraz to robi.Dodano tego samego dnia co Twój komentarz, wydaje się. :) – kekkis
jeszcze nie wymyśliłem jak go używać, nie wiem gdzie znaleźć JAR ich odniesienie, za mało dokumentacji. – Vadorequest
- 1. Event zwolniony tylko raz podczas oglądania katalogu
- 2. Wykonaj zadanie Ant z Mavenem
- 3. Monitorowanie katalogu zmian
- 4. Czy mogę utworzyć specyficzne dla systemu operacyjnego zadanie kopiowania Ant?
- 5. Ant - Java - zipfileset - bez katalogu
- 6. Czy można wywołać zadanie ant z zadania scriptdef javascript?
- 7. Przechowywanie zmian przy zachowaniu zmian w katalogu roboczym w Git
- 8. Wyłącz Logging Ant zadanie kopiowania w AntRun
- 9. Z wyjątkiem .git w Ant <tar> Zadanie
- 10. Wykonaj zadanie ant exec z innego folderu
- 11. Oglądanie katalogu zmian w Javie
- 12. Czy istnieje zadanie MSBuild, które wyodrębni ścieżkę z nazwy pliku?
- 13. Dlaczego ant szuka tool.jar w niewłaściwym katalogu?
- 14. Ant target do przenoszenia katalogów z innego katalogu
- 15. bazowego katalogu problem w kodzie Ant
- 16. BEZPŁATNE narzędzie do oglądania współrzędnych w PDF
- 17. Excel VBA Sprawdź, czy istnieje błąd katalogu
- 18. Testowanie z Jest nie powiodło się z błędem: Błąd podczas oglądania pliku zmian: EMFILE
- 19. Eclipse Mars: ANT referencje Zadanie brakuje biblioteki SWT
- 20. Zadanie Gradle do utworzenia archiwum zip z katalogu
- 21. sprawdzanie, czy plik istnieje w określonym katalogu
- 22. Jak sprawdzić, czy nieruchomość istnieje?
- 23. Używanie select/poll/kqueue/kevent do oglądania katalogu dla nowych plików
- 24. Wykonaj domyślne zadanie w ANT w przypadku niepowodzenia.
- 25. Android debugowanie - Punkty oglądania
- 26. Czy możemy użyć pom.xml do ANT
- 27. Odwołanie lokalizacji skryptu ant z pliku ant
- 28. rejestrowanie testu Natychmiastowe JUnit z <junit> Ant zadanie
- 29. Usuwanie Data Komentarz od Apache Ant PropertyFile Zadanie
- 30. Ant zadanie replaceregexp - Match i zastąpić komentarze HTML zablokować
Cóż, nie znalazłem prostego rozwiązania tego problemu, więc używam na razie konkretnej komendy bash: 'inoticoming - theground ./src/ ant \;' –
leeand00