Ant предоставляет несколько предопределенных типов данных. Не путайте термин «типы данных» с теми, которые доступны на языке программирования, вместо этого рассматривайте их как набор сервисов, уже встроенных в продукт.
Apache Ant предоставляет следующие типы данных.
Набор файлов
Типы данных набора файлов представляют собой набор файлов. Он используется в качестве фильтра для включения или исключения файлов, которые соответствуют определенному шаблону.
Например, обратитесь к следующему коду. Здесь атрибут src указывает на исходную папку проекта.
Набор файлов выбирает все файлы .java в исходной папке, кроме тех, которые содержат слово «заглушка». Фильтр с учетом регистра применяется к набору файлов, что означает, что файл с именем Samplestub.java не будет исключен из набора файлов.
<fileset dir = "${src}" casesensitive = "yes"> <include name = "**/*.java"/> <exclude name = "**/*Stub*"/> </fileset>
Набор шаблонов
Набор шаблонов — это шаблон, который позволяет легко фильтровать файлы или папки на основе определенных шаблонов. Шаблоны могут быть созданы с использованием следующих метасимволов —
-
? — Соответствует только одному персонажу.
-
* — соответствует нулю или множеству символов.
-
** — рекурсивно соответствует нулю или множеству каталогов.
? — Соответствует только одному персонажу.
* — соответствует нулю или множеству символов.
** — рекурсивно соответствует нулю или множеству каталогов.
В следующем примере показано использование набора шаблонов.
<patternset id = "java.files.without.stubs"> <include name = "src/**/*.java"/> <exclude name = "src/**/*Stub*"/> </patternset>
Затем набор шаблонов можно повторно использовать с набором файлов следующим образом:
<fileset dir = "${src}" casesensitive = "yes"> <patternset refid = "java.files.without.stubs"/> </fileset>
Список файлов
Тип данных filelist похож на набор файлов, за исключением следующих различий:
-
filelist содержит явно именованные списки файлов и не поддерживает подстановочные знаки.
-
Тип данных filelist может применяться к существующим или несуществующим файлам.
filelist содержит явно именованные списки файлов и не поддерживает подстановочные знаки.
Тип данных filelist может применяться к существующим или несуществующим файлам.
Давайте посмотрим на следующий пример типа данных filelist. Здесь атрибут webapp.src.folder указывает на исходную папку веб-приложения проекта.
<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>
Набор фильтров
Используя тип данных набора фильтров вместе с задачей копирования, вы можете заменить определенный текст во всех файлах, который соответствует шаблону, значением замены.
Типичным примером является добавление номера версии в файл заметок о выпуске, как показано в следующем коде.
<copy todir = "${output.dir}"> <fileset dir = "${releasenotes.dir}" includes = "**/*.txt"/> <filterset> <filter token = "VERSION" value = "${current.version}"/> </filterset> </copy>
В этом кодексе —
-
Атрибут output.dir указывает на выходную папку проекта.
-
Атрибут releasenotes.dir указывает на папку с заметками о выпуске проекта.
-
Атрибут current.version указывает на папку текущей версии проекта.
-
Задача копирования, как следует из названия, используется для копирования файлов из одного места в другое.
Атрибут output.dir указывает на выходную папку проекта.
Атрибут releasenotes.dir указывает на папку с заметками о выпуске проекта.
Атрибут current.version указывает на папку текущей версии проекта.
Задача копирования, как следует из названия, используется для копирования файлов из одного места в другое.
Дорожка
Тип данных пути обычно используется для представления пути к классам. Записи в пути разделяются точкой с запятой или двоеточием. Однако эти символы заменяются во время выполнения символом-разделителем пути исполняющей системы.
В качестве пути к классу указывается список jar-файлов и классов в проекте, как показано в примере ниже.
<path id = "build.classpath.jar"> <pathelement path = "${env.J2EE_HOME}/${j2ee.jar}"/> <fileset dir = "lib"> <include name = "**/*.jar"/> </fileset> </path>
В этом коде —
Атрибут env.J2EE_HOME указывает на переменную среды J2EE_HOME .
Атрибут j2ee.jar указывает на имя файла jar J2EE в базовой папке J2EE.