Коли мова йде про використання інтегрованого середовища розробки (IDE), часто доводиться стикатися з думкою про те, що її функціонал занадто надмірний для вирішення повсякденних завдань. Частка правди в цьому є: з'являються нові сутності, незнайомі механізми, багато налаштувань, про які раніше не доводилося замислюватися. Однак не варто забувати, що робота в IDE - абсолютно новий рівень розробки і багато звичні завдання в ній вирішуються по-іншому. Принадність інтегрованого середовища в тому, що у розробника є можливість зібрати під одним дахом (тобто в одній програмі) багато різних інструментів, які будуть не тільки вирішувати різні завдання, але і тісно взаємодіяти один з одним. Таким чином, перед розробником відкриються абсолютно нові способи роботи над проектом.
Apache Ant відомий будь-якій Java-програміста: це популярний інструмент збірки ПЗ (build tool), повністю написаний на Java. Його підтримують всі IDE: NetBeans. IntelliJ IDEA. Eclipse. Сценарій збірки Ant є простим XML-файл. Незважаючи на всю свою Java-спрямованість, і звичайні веб-розробники користуються цим інструментом для вирішення своїх завдань.
Hello world!
- Створимо новий проект і назвемо його, наприклад, ant-test.
- У цьому проекті створимо новий файл з ім'ям build.xml. Файл повинен відразу ж відкритися в Ant Editor.
- Запишемо туди ось такий сценарій:
Розглянемо докладніше структуру сценарію. Батьківським елементом є
усередині тега
Щоб краще освоїтися з Ant, давайте створимо щось корисне, наприклад, актуальне на сьогоднішній день стиснення набору js-файлів за допомогою YUICompressor.
Приступимо до написання сценарію. Визначимося, з якою метою ми хочемо досягти. Нам потрібно побудувати бібліотеку lib.js (перша мета), для чого потрібно об'єднати всі файли в один (друга мета) і стиснути їх (третя мета). Ось приблизний сценарій:
Відразу розглянемо всі нові елементи і атрибути. У елемента
Як видно з прикладу, у нас є точка входу - мета build-lib (атрибут default у
Але у цього способу є ряд недоліків. По-перше, в набір потраплять абсолютно всі файли з розширенням js в папці js_src, що не завжди потрібно на реальних проектах. А по-друге, навіть якщо вказати в патернах назви файлів, цей ресурс не гарантує той порядок проходження, в якому ви хочете їх об'єднати. Тобто якщо важливо, в якому порядку повинні об'єднуватися файли, краще ставити набір через
У наведеному прикладі бентежить те, що шлях до папок жорстко зашиті в код сценарію, тому давайте винесемо їх в окремі властивості:
Властивості в Ant задаються за допомогою тега
Господині на замітку
Перевірте роботу сценарію: зробіть подвійний клік в Ant View на цілі build-lib. У вас в папці js повинен з'явитися файл lib.js, в якому буде вміст всіх трьох файлів. Якщо файл не з'явився, поновіть (Refresh) папку js в Project Explorer.
Файли об'єднувати ми навчилися, тепер навчимося стискати їх за допомогою YUICompressor. Сам розробник цієї чудової бібліотеки рекомендує скористатися послугами професійного компресор як зовнішню програму, ми ж зробимо куди цікавіше: створимо окрему задачу, яка буде стискати файли.
Модульна структура Ant дозволяє розширювати його, дописуючи нові завдання на Java. Зараз ми навчимося одному із способів додавання таких завдань в сценарій збірки.
- Скачайте YUICompressor і розпакуйте кудись архів, наприклад, в папку C: \ yuicompressor.
- Скачайте YUIAnt.jar і покладіть його в папку build, де ви розпакували YUICompressor (C: \ yuicompressor \ build).
- Додайте ось таку конструкцію в сценарій всередину тега
:
За допомогою неї ми створили нову задачу
Ми викликали завдання
Перевірте роботу мети build-lib. в папці js у вас повинен виявитися потиск lib.js.
збірка проекту
А тепер перейдемо до найцікавішого. Зручність інтеграції Ant з Eclipse полягає не в тому, що ви можете в будь-який момент викликати потрібну мета з віконця, а в тому, що ви можете вказати збирач для проекту.
Зайдіть у властивості проекту ant-test (Project → Properties) і перейдіть в пункт Builders. Натисніть кнопку New і в діалоговому вікні виберіть Ant Builder. У вікні задайте яке-небудь ім'я вашого збирачеві (наприклад, My first Ant build). Тепер потрібно вибрати сценарій (buildfile). Натисніть на кнопку Browse workspace і в проекті ant-test виберіть файл build.xml. Перейдіть на вкладку Refresh і відзначте пункти Refresh resources upon completition і The project containing the selected resource. Це означає, що після роботи збирача буде автоматично оновлюватися список файлів проекту, тому в Project Explorer ви завжди будете бачити актуальну версію проекту. Перейдіть у вкладку Targets, там ви побачите список цілей, які будуть виконуватися при різних типах збірки. Зокрема, в розділах After a «Clean» і Manual build буде вказано default target selected. Це означає, що буде виконуватися мета, зазначена за замовчуванням у проекту (пам'ятаєте атрибут default у
Тепер ми можемо викликати збирач після натискання на Project → Build Project (на цю команду можна повісити гарячі клавіші). А якщо виберемо опцію Project → Build Automatically, то нам навіть нічого робити не треба: проект буде сам збиратися при будь-якій зміні будь-якого файлу проекту.
Таким чином, ми прийшли до абсолютно прозорою автоматизації рутинних завдань при роботі в IDE. Все, що необхідно зробити, - створити простий сценарій, вказати його як збирачі і включити опцію автоматичного складання. Кожен раз, коли ви вносите проект (редагуєте, видаляєте і додаєте файли) всі необхідні дії будуть виконуватися у фоновому режимі, не відволікаючи розробника. Це особливо корисно при роботі в команді: будь-який розробник може внести зміни в сценарій, які будуть автоматично виконуватися у всіх інших.
У цій статті були поверхово розглянуті деякі базові прийоми роботи з Ant. Раджу ознайомитися зі списком стандартних завдань. там є такі корисні речі, як синхронізація каталогів та завантаження файлів по FTP, виконання SQL-запитів, XSL-трансформації, архівація файлів і багато іншого.
Подивитися на Ant в дії можна в студійній лекції для технологів.
- скрінкасти (Квіктайм, 101 МБ)