Mrówka - typy danych
Ant zapewnia szereg predefiniowanych typów danych. Nie należy mylić terminu „typy danych” z tymi, które są dostępne w języku programowania, zamiast tego należy traktować je jako zestaw usług już wbudowanych w produkt.
Następujące typy danych są dostarczane przez Apache Ant.
Zestaw plików
Typy danych zestawu plików reprezentują zbiór plików. Służy jako filtr do włączania lub wykluczania plików pasujących do określonego wzorca.
Na przykład odwołaj się do następującego kodu. Tutaj atrybut src wskazuje na folder źródłowy projektu.
Zestaw plików wybiera wszystkie pliki .java w folderze źródłowym, z wyjątkiem tych, które zawierają słowo „Stub”. Do zestawu plików stosowany jest filtr uwzględniający wielkość liter, co oznacza, że plik o nazwie Samplestub.java nie zostanie wykluczony z zestawu plików.
<fileset dir = "${src}" casesensitive = "yes">
<include name = "**/*.java"/>
<exclude name = "**/*Stub*"/>
</fileset>
Zestaw wzorów
Zestaw wzorców to wzorzec, który umożliwia łatwe filtrowanie plików lub folderów na podstawie określonych wzorców. Wzory można tworzyć za pomocą następujących metaznaków -
? - Dopasowuje tylko jeden znak.
* - Dopasowuje zero lub wiele znaków.
** - Dopasowuje rekursywnie zero lub wiele katalogów.
Poniższy przykład przedstawia użycie zestawu wzorców.
<patternset id = "java.files.without.stubs">
<include name = "src/**/*.java"/>
<exclude name = "src/**/*Stub*"/>
</patternset>
Zestaw wzorców można następnie ponownie wykorzystać z zestawem plików w następujący sposób -
<fileset dir = "${src}" casesensitive = "yes">
<patternset refid = "java.files.without.stubs"/>
</fileset>
Lista plików
Typ danych filelist jest podobny do zestawu plików z wyjątkiem następujących różnic -
filelist zawiera jawnie nazwane listy plików i nie obsługuje symboli wieloznacznych.
Typ danych filelist można zastosować do istniejących lub nieistniejących plików.
Zobaczmy następujący przykład typu danych filelist. Tutaj atrybutwebapp.src.folder wskazuje na folder źródłowy aplikacji sieci Web projektu.
<filelist id = "config.files" dir = "${webapp.src.folder}">
<file name = "applicationConfig.xml"/>
<file name = "faces-config.xml"/>
<file name = "web.xml"/>
<file name = "portlet.xml"/>
</filelist>
Zestaw filtrów
Używając typu danych zestawu filtrów wraz z zadaniem kopiowania, możesz zastąpić określony tekst we wszystkich plikach, które pasują do wzorca, wartością zastępczą.
Typowym przykładem jest dołączenie numeru wersji do pliku informacji o wersji, jak pokazano w poniższym kodzie.
<copy todir = "${output.dir}">
<fileset dir = "${releasenotes.dir}" includes = "**/*.txt"/>
<filterset>
<filter token = "VERSION" value = "${current.version}"/>
</filterset>
</copy>
W tym kodzie -
Atrybut output.dir wskazuje na folder wyjściowy projektu.
Atrybut releasenotes.dir wskazuje na folder uwag do wydania projektu.
Atrybut current.version wskazuje folder aktualnej wersji projektu.
Zadanie kopiowania, jak sama nazwa wskazuje, służy do kopiowania plików z jednej lokalizacji do drugiej.
Ścieżka
Plik pathtyp danych jest powszechnie używany do reprezentowania ścieżki klasy. Wpisy na ścieżce są oddzielane średnikami lub dwukropkami. Jednak te znaki są zastępowane w czasie wykonywania przez znak separatora ścieżki systemu wykonawczego.
Ścieżka klas jest ustawiona na listę plików jar i klas w projekcie, jak pokazano w poniższym przykładzie.
<path id = "build.classpath.jar">
<pathelement path = "${env.J2EE_HOME}/${j2ee.jar}"/>
<fileset dir = "lib">
<include name = "**/*.jar"/>
</fileset>
</path>
W tym kodzie -
Atrybut env.J2EE_HOME wskazuje na zmienną środowiskową J2EE_HOME.
Atrybut j2ee.jar wskazuje na nazwę pliku jar J2EE w folderze podstawowym J2EE.