Учебники

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

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.