Муравей - Типы данных
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. Здесь атрибут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 указывает на папку текущей версии проекта.
Задача копирования, как следует из названия, используется для копирования файлов из одного места в другое.
Путь
В pathтип данных обычно используется для представления пути к классам. Записи в пути разделяются точкой с запятой или двоеточием. Однако эти символы заменяются во время выполнения символом-разделителем пути исполняющей системы.
Путь к классам установлен для списка файлов и классов 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.