Показать сообщение отдельно
  #16 (permalink)  
Старый 24.01.2012, 16:16
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

В ант, посредством тега script, можно выполнять JavaScript код.

Для таких скриптов доступна некая базовая объектная модель. В частности, доступен глобальный объект this, в котором хранятся все переменные, определённые в текущем коде скрипта. Так же в нем доступны объекты задач из текущего ant-файла, для которых установлен атрибут id.
Так же можно получить объект проекта через свойство project или имя проекта (значение атрибута name тега project).

Важный момент: для каждого тега script запускается новый экземпляр интерпретатора, поэтому состояния глобальных объектов и встроенных конструкторов не сохраняется.

Для обращения к конкретному классу, он сначала должен быть импортирован, например:
importClass(java.io.File);


К примеру, класс объекта проекта можно получить так:
importClass(org.apache.tools.ant.Project);

Теперь в глобальной области доступен класс Project.

Свойства экземпляра этого класса описаны здесь.

Либо импорт пакета:
importPackage(java.io);


Для каждой задачи (тега) ant определён свой класс, который наследует от более абстрактных классов, что можно посмотреть в мануале. Кстати, последняя версия ant - 1.8.2, а документация к API существует только для 1.7.1. Но ни что не мешает заглянуть в исходники, особенно при возникновении трудностей.

Так как это не обычные JS-объекты, а самые настоящие классы и их экземпляры, то и поведение у них соответствующее. Самое основное то, что нельзя присвоить экземпляру класса новое свойство. Так же нельзя вызвать метод с другими типами аргументов или их с отсутствием, так как этот набор жестко определён. Вообще, это уже чистая Java.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф

Последний раз редактировалось B~Vladi, 24.01.2012 в 16:21.
Ответить с цитированием