Все файлы проекта лежат прямо под Apache Tomcat, структура папок полностью соответствует правилам развертывания. Java-классы лежат по соседству с исходными файлами. Для создания пакета нужно очистить папки от исходных файлов и упаковать все в war. Имея под рукой UNIX-shell все это можно делать довольно быстро.
В таких условиях думалось: взять один из IDE - означает компилировать на рабочем компьютере, а этого не хотелось, так как сервер мощнее. Поэтому взять автоматизатор сборки и использовать его на сервере показалось разумным.
Есть еще проблемы: для того, чтоб делать тестовую и рабочую сборки нужно проделывать еще некоторые манипуляции, например, менять конфигурационные файлы.
Вообщем, пришла пора брать автоматический сборщик, на слуху два сборщика: ant и maven. Поначалу казалось, что ant более простой, устоявшейся и для небольших проектов лучше взять его. Но, в голове осталась фраза из интервью одного из Java-разработчиков: "maven, он более идеологически правильный".
После ознакомления с информацией по обоим продуктам, стало ясно, что по-большому делают они одно и то же - автоматизируют сборку, но Maven еще поддреживает жизненный цикл сборки.
Выбор пал на Maven, так как он умеет "больше", чем ant и, как показалось, более современный.
Установка под GNU/Linux из репозитория, создание структуры Web-проекта по архитипу:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=k2 -DartifactId=my_project
весьма просто.
Дальше пришлось подстроиться по правила Maven: src/main/java содержит только java-файлы, файлы конфигурации нужно сложить, например, в "src/main/resources/conf".
Для профилирования сборок: тестовая, рабочая создаются разделы "profile
Задачи по копированию, удалению файлов делаются с помощью "maven-antrun-plugin".
Если не хотим, чтоб Maven искал и скачивал библитеку из репозиториев, то можно сделать
Для Tomcat есть "tomcat-maven-plugin", который автоматизирует развертывание.
Можно, используя "jetty-maven-plugin", запустить приложения прямо из Maven.
При разработке, после редактирования кода, вместо прямого вызова компилятора, стал вызывать:
mvn -Pdev compile
, где dev - имя профиля.
На "/target/classes" сделана символическая ссылка из под развернутого под Tomcat приложения, таким образом увидеть результаты изменений можно после компиляции и перезапуска приложения в Tomcat.ь Это занимает больше времени, чем прямая компиляция.
Итого: сборка проекта ускорилась, сам процесс разработки получил дополнительные задержки.
Комментариев нет:
Отправить комментарий