Муравей - Типы данных

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.