Донецкий техникум промышленной автоматики

Практична автоматизація: Створення майстрів установки додатків

  1. Серія контенту:
  2. Цей контент є частиною серії: Практична автоматизація
  3. Про цю серії
  4. Завантаження і установка IzPack
  5. Редагування демо-скриптів
  6. Малюнок 1. Список файлів в каталозі sample
  7. ресурси
  8. Лістинг 1. Опис файлів ресурсів в install.xml
  9. панелі
  10. Малюнок 2. Модифікований варіант панелі майстра графічної установки додатків
  11. Лістинг 2. Перелік панелей, які будуть використовуватися при установці
  12. Лістинг 3. Опис атрибутів панелі інсталятора
  13. Малюнок 3. Панель для введення інформації користувача
  14. пакети
  15. Лістинг 4. Приклад елемента <pack> в файлі install.xml
  16. Малюнок 4. Виконання пакета
  17. Запуск скриптів Ant
  18. Лістинг 5. Приклад пакета, що виконує запуск скрипта, в файлі antActionSpec.xml
  19. компіляція інсталяторів
  20. Лістинг 6. Компіляція інсталятора
  21. Інсталятори для всіх
  22. Ресурси для скачування

практична автоматизація

Генерація графічних інсталяторів за допомогою IzPack

Серія контенту:

Цей контент є частиною # з серії # статей: Практична автоматизація

https://www.ibm.com/developerworks/ru/views/global/libraryview.jsp?series_title_by=Практическая+автоматизация

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Практична автоматизація

Слідкуйте за виходом нових статей цієї серії.

Протягом більшої частини своєї кар'єри я брав участь у всіх фазах розробки ПО - не тільки в уточненні вимог, дизайні, розробці та тестуванні, але також займався такими речами, як розгортання, управління складанням, документування і установка. В даний час, коли все більшої популярності набуває гнучка методологія розробки (Agile development), подібне широке поле діяльності є скоріше нормою. Проте мій досвід участі в Agile-проектах говорить про те, що ефективність розгортання і встановити програму іноді розглядається як завдання другорядної важливості. У цьому є частка іронії, оскільки якщо користувачі не зможуть легко змусити ваше додаток працювати, то ви їх просто втратите. Таким чином, надання простого способу установки ваших додатків життєво важливо для залучення і збереження користувачів.

Про цю серії

Оскільки ми є розробниками, наше завдання полягає в автоматизації праці кінцевих користувачів. При цьому багато хто з нас не приділяють достатньо уваги автоматизації своєї власної праці. серія статей jsp?search_by=%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F:> практична автоматизація присвячена практичним принципам автоматизації процесу розробки та відповідає на питання, коли і як їх слід застосовувати.

За роки своєї кар'єри я перепробував безліч інсталяторів. У великому проекті, над яким моя команда почала працювати в цьому році, було кілька дуже специфічних вимог до створення корпоративних інсталяторів. Ми випробували такі продукти, як Antigen, AntInstaller, Denova, install4j, InstallAnywhere, IzPack, NSIS і деякі інші. Керуючись вимогами до нашого продукту, ми вирішили використовувати IzPack з наступних причин:

  • він працює на декількох платформах. Нам необхідно було підтримувати Windows®, Linux® і Macintosh;
  • IzPack написаний на Java ™, з яким у наших розробників є великий досвід роботи;
  • він вміє виконувати скрипти Apache Ant. Раніше ми витратили багато часу на написання скриптів Ant для розгортання додатків;
  • IzPack - це безкоштовний продукт.

IzPack займає своє місце на ринку з 2001 року, надаючи багатий набір можливостей для створення майстрів установки програм. У цій статті буде розказано про його застосування для створення інсталяторів, в тому числі будуть продемонстровані приклади опису панелей, скриптів перевірки, установки ресурсів і багато чого іншого.

Завантаження і установка IzPack

документація IzPack

Одним з перших каталогів, в які необхідно заглянути, є doc. У ньому міститься документація в форматах HTML, PDF і Javadoc. Вона може стати постійним джерелом інформації на тему написання скриптів в IzPack.

Завантаження і установка IzPack не таїть в собі ніяких проблем. Не дивно, що для інсталяції IzPack використовує себе самого. Зайдіть на сайт IzPack і завантажте JAR-файл IzPack (див. Розділ ресурси ).

Для установки IzPack у вас повинна бути запущена Виконавча Java (JRE). Відкрийте командний інтерпретатор і виконайте команду java -jar IzPack-install-4.1.0.jar (при необхідності змініть номер версії).

В результаті запуститься майстер і запросить базові параметри установки, зокрема, в який каталог повинен бути встановлений IzPack. Після цього вам не важко буде запустити сам IzPack.

Редагування демо-скриптів

В поставку IzPack входить повний набір демонстраційних скриптів установки. При створенні свого інсталятора найпростіше використовувати ці скрипти в якості базових. В каталозі установки IzPack знаходяться кілька підкаталогів, в тому числі bin, doc та lib. Приклад інсталятора знаходиться в підкаталозі sample, в якому також знаходиться практично все, що може вам знадобитися для створення власних інсталяторів. Найкраще зробити копію цього каталогу, щоб потім його можна було модифікувати без остраху зіпсувати початкове вміст, яке показано на малюнку 1.

Малюнок 1. Список файлів в каталозі sample

На малюнку 1 представлені наступні файли:

  • antActionSpec.xml: за допомогою цього файлу виконуються складальні скрипти Ant;
  • install.jar: інсталяційний JAR-файл, згенерований у процесі компіляції IzPack. Саме цей файл буде запускатися користувачами;
  • install.xml: головний інсталяційний скрипт IzPack. Всі ресурси, що використовуються інсталятором IzPack, починаються з цього скрипта;
  • Licence.txt: ліцензійний файл інсталятора;
  • Readme.txt: файл довідки по встановлюється додатком;
  • userInputSpec.xml: XML-скрипт, який використовується IzPack для опису поведінки (перевірок, значень за замовчуванням, розмірів полів і т.д.) при введенні користувачем значень на панелі інсталятора.

Далі ми розглянемо IzPack більш детально, заглибившись в деталі скрипта install.xml

ресурси

Ресурсами є різні скрипти, зображення, ліцензії та інші файли, з яких буде складатися інсталятор. В скрипті install.xml міститься елемент <resources>, усередині якого можна описувати файли, які будуть потім використовуватися інсталятором. Приклад приведений в лістингу 1.

Лістинг 1. Опис файлів ресурсів в install.xml
<Resources> <res id = "LicencePanel.licence" src = "Licence.txt" /> <res id = "InfoPanel.info" src = "Readme.txt" /> <res id = "AntActionsSpec.xml" src = "antActionSpec.xml" /> <res id = "userInputSpec.xml" src = "userInputSpec.xml" /> </ resources>

Ресурси в IzPack представляють якийсь перелік основних матеріалів, в них описується кожен файл, який буде використовуватися майбутнім інсталятором.

панелі

Панелі - це те, що користувачі будуть спостерігати на кожному кроці майстра установки. IzPack надає безліч варіантів стандартних панелей, які ви можете видозмінювати на свій розсуд. На малюнку 2 показаний модифікований варіант HelloPanel, на яку виводиться вступна інформація для користувачів.

Малюнок 2. Модифікований варіант панелі майстра графічної установки додатків

До стандартних панелям відносяться LicensePanel, UserInputPanel, PacksPanel і деякі інші. Крім того, можна описувати власні панелі в файлі install.xml. Для цього служить елемент <panels>, за яким повинні слідувати шаблони, які будуть використовуватися в скрипті інсталятора. У лістингу 2 наведено приклад опису шаблону панелі.

Лістинг 2. Перелік панелей, які будуть використовуватися при установці
<Panels> <panel classname = "HelloPanel" /> <panel classname = "InfoPanel" /> <panel classname = "LicensePanel" /> <panel classname = "UserInputPanel" id = "UserInputPanel.0" /> <panel classname = "TargetPanel" /> <panel classname = "PacksPanel" /> <panel classname = "InstallPanel" /> <panel classname = "FinishPanel" /> </ panels>

З великою часткою ймовірності можна стверджувати, що найчастіше ви будете використовувати панель UserInputPanel. Вона являє собою шаблон, який можна видозмінювати таким чином, щоб користувачі могли вводити будь-яку важливу інформацію, наприклад, контактні дані, параметри аутентифікації, розташування каталогів і т.д. Залежно від ситуації користувачі можуть вводити дані в декількох панелях. У нашому випадку панелі використовувалися для введення користувачами інформації про підключення до бази даних і конфігурації контейнерів JBoss.

У лістингу 3 показаний приклад, взятий з файлу userInputSpec.xml, який є одним з ресурсів в лістингу 1 . У цьому прикладі описується панель для збору інформації про підключення до бази даних.

Лістинг 3. Опис атрибутів панелі інсталятора
<Panel order = "0"> <field type = "title" txt = "Configuring your database connection" bold = "true" size = "1" /> <field type = "staticText" align = "left" txt = " Connect to an existing database ... "/> <field type =" divider "align =" top "/> <field type =" text "variable =" database.hostname "> <spec txt =" Database Host Name: " id = "databasehostname.label" size = "40" set = "" /> <validator class = "com.izforge.izpack.util.NotEmptyValidator" txt = "Database Hostname is a required field" /> </ field>. .. </ panel>

Значенням атрибута order в цьому прикладі є 0, що відповідає номеру UserInputPanel в наборі панелей в лістингу 2 .

У панелях можна визначати інформаційні повідомлення для користувачів. Крім того, ми додали опис перевірки NotEmptyValidator, яка вимагає введення непорожньої значення в цьому полі. Таким чином можна запобігти помилкам при установці, які можуть виникнути, якщо користувач забуде ввести обов'язкову інформацію. Зовнішній вигляд панелі з лістингу 3 показаний на малюнку 3.

Малюнок 3. Панель для введення інформації користувача

Думка користувачів про ефективність інсталятора часто може ґрунтуватися на тому, наскільки легко він дозволяє вводити дані і наскільки інформативні його повідомлення. Внаслідок цього слід подбати про те, щоб з панелями було легко працювати.

пакети

У термінології IzPack під терміном пакет (pack) розуміються всі компоненти, які займаються безпосередньо установкою розроблених програм. Всі інші компоненти IzPack - панелі, призначені для користувача дані, валідатори і т.д. - служать лише для підготовки до запуску пакетів. У нашому проекті пакети використовувалися для виконання декількох дій: завантаження архіву ZIP, що містить інсталяційний дистрибутив, заздалегідь написаний на Ant, і запуску його установки. Завдяки такому підходу нам вдалося повторно використовувати раніше розроблені компоненти, запустивши їх з командного рядка. Пакети описуються елементами <pack> (лістинг 4).

Лістинг 4. Приклад елемента <pack> в файлі install.xml
<Packs> <pack name = "download_install" id = "download_install" installGroups = "ap" required = "no"> <description> The base files </ description> <file src = "autopeople.zip.file" targetdir = " $ SYSTEM_user_home / @ {installer.dir} "/> <file src =" build.xml "targetdir =" $ SYSTEM_user_home / @ {installer.dir} "/> <file src =" property-template "targetdir =" $ SYSTEM_user_home / @ {installer.dir} "> <excludes> ** /. svn / ** </ excludes> </ file> </ pack>

Вікно стану процесу установки показано на малюнку 4.

Малюнок 4. Виконання пакета

Пакети - це центральна ланка IzPack. Якщо ви виконали всі попередні дії по частині перевірки користувальницького введення, діагностики та отримання інформації про оточення, то запуск пакетів повинен бути легкою "прогулянкою" для користувачів.

Запуск скриптів Ant

Наша команда вклала багато часу в створення інсталяторів на основі дистрибутивів за допомогою Ant. Зрозуміло, нам не хотілося повторно реалізовувати всю цю функціональність на IzPack. На щастя, IzPack підтримує можливість виклику існуючих скриптів Ant. Як ви пам'ятаєте, одним з файлів ресурсів, перерахованих в лістингу 1 , Був antActionSpec.xml. Фрагмент даного скрипта приведений в лістингу 5.

Лістинг 5. Приклад пакета, що виконує запуск скрипта, в файлі antActionSpec.xml
<Antactions> <pack name = "download_install"> <antcall buildfile = "$ SYSTEM_user_home / $ {installer.dir} /build.xml" order = "afterpack" verbose = "yes" logfile = "$ SYSTEM_user_home / $ {installer. dir} /antlog_installer.txt "inheritall =" false "messageid =" AntAction.download-install "> <target name =" install "/> <property name =" install.path "value =" $ SYSTEM_user_home / $ {installer. dir} "/> </ antcall> </ pack> ... </ antactions>

Найцікавіше в цьому скрипті - це те місце, в якому відбувається виклик build.xml. Він являє собою існуючий складальний скрипт Ant, який виконує дії по завантаженню та розпакування ZIP-архіву інсталятора, встановлення та налаштування Web-контейнерів та інших етапів установки програми. Таким чином, завдяки antActionSpec.xml можна повторно використовувати раніше написані скрипти Ant.

компіляція інсталяторів

Останнім етапом реалізації інсталятора за допомогою IzPack є компіляція. Після того як написаний install.xml і всі необхідні скрипти, прийшов час згенерувати сам інсталятор. У лістингу 6 наведено приклад однорядковою команди, виконавши яку ви сгенеріруете install.jar (при бажанні ви можете змінити ім'я файлу).

Лістинг 6. Компіляція інсталятора
compile ../sample/install.xml -b ../sample

У лістингу 6 мається на увазі, що ви запускаєте цю команду з підкаталогу bin настановної директорії IzPack. Ім'я sample вказує на підкаталог sample, який міститься в стандартному постачанні IzPack. Згенерувавши інсталятор, ви можете протестувати його, виконавши команду java -jar install.jar в каталозі, в якому знаходиться install.jar.

Інсталятори для всіх

У цій статті розповідалося про роботу з різними компонентами IzPack для створення простих у використанні інсталяторів. З ними можуть працювати користувачі клієнтських програм, користувачі на віддалених сайтах, яким необхідно встановити і конфігурувати кілька серверів, або навіть технічні фахівці, які встановлюють і налаштовують корпоративні пакети та програми. Проста установка ваших додатків значно полегшує життя користувачів, особливо при роботі з системами, сумно відомими своїми складними сценаріями установки ПО. Ви можете втратити користувачів просто через їх роздратування або втрати впевненості в якості додатку, якщо його установка вимагає виконання безлічі ручних дій або практично нездійсненна. Таким чином, спрощуючи роботу з інсталяторами за допомогою засобів на кшталт IzPack, ви потенційно можете залучити нових і зберегти існуючих клієнтів.

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Jsp?