воскресенье, 19 июня 2011 г.

Java головного мозга. Выбор среды для разработки на JavaEE

Одним из факторов успешного и приятного процесса разработки является среда, в которой вы пишете код. Безусловно, писать программы можно и в блокноте, но, я уверен, вы согласитесь, что если половину работы по написанию проекта возьмет на себя IDE, вас это только порадует. На сегодняшний день самыми популярными средами разработки являются: Eclipce, Netbeans, продукты JetBrains. Если вы махая руками уже набрали полный рот слюней, чтобы брызжа ими мне в лицо заявить “А как же VisualStudia!”, то перечитайте название статьи - я ориентируюсь на Java-разработчиков. Безусловно, можно использовать всякие emacs’ы или vim’ы сдобренные стероидами в виде плагинов, но это на красноглазого любителя.
Вы знаете, что я в качестве Java-разработчика новичок, поэтому хочу поделиться своими впечатлениями от двух сред, а так же рассказать, как упростить разработку на JavaEE, чтобы она приблизилась по скорости к разработке на динамических языках. Первой моей средой (правда в те далекие времена я писал на Perl и PHP, а иногда на Ruby) был Eclipse. О наличии чего-то другого я не знал и не задумывался. В те времена Eclipse мне нравился обилием плагинов, из него можно было сделать все что угодно, настроить как угодно и для любых целей. Правда для этого нужно было один раз сесть, загрузить все эти плагины и правильно поставить,  в поставке по умолчанию Eclipse почти не пригоден для использования: в нем нет ни поддержки Subversion, не говоря уже о Mercurial, отсутствует поддержка Maven. Удобств по написанию кода тоже не много, максимум что есть - это CTRL+ SPACE, причем абсолютно тупой, очень плохо использующий контекст. К тому же, после того как вы обвешаете Eclipse плагинами, он станет заметно тормозить. Но в целом работать можно, а нужно ли?
С NetBeans я познакомился, когда изучал Netbeans Platform. Он мне понравился своей минималистичностью, ничего лишнего - в панель вынесены лишь инструменты для билда и запуска. Но несмотря на эту минималистичность, в нем из коробки есть клиенты для Subversion и Mercurial, паттерны кода с автодополнением по TAB-клавиши. Написали вы, к примеру “sout”, нажали TAB и получили “system.out.println()” - увеличивает скорость написания кода в разы! Но пожалуй, самое главное для меня - это наличие Maven из коробки. Разрабатывать на Java без Maven могут лишь одинокие говнокодеры, которым не нужны внешние библиотеки, и которые не задумываются о том, как будут разворачивать их код другие разработчики.
Но в последствии Netbeans огорчил меня отсутствием автодиплоя изменений в WTP проекте на сервер контейнеров. Т.е. после того как вы внесли изменения в файл и сохранил его, он не перезальет его на рабочий сервер. В eclipse автозаливка была и работала хорошо, но eclipse отказывается распознавать WTP-проекты созданные по артефактам.
Вот так я сидел и смотрел на два инвалида. Смотреть можно долго, но надо что-то делать! А т.к. на работе  у меня eclipse, то я точить под него. Решение проблемы ниже.
Прежде всего следует поставить Eclipse for Java EE Developers, если вы не хотите мучится и доставлять компоненты WTP. Идем в Help>Eclipce Marketplace и ставим m2eclipse, только не перепутайте с m2e. После этого идем в Help>Install New Software. И вводим путь репозитория “http://m2eclipse.sonatype.org/sites/m2e-extras/”, после чего выбираем “Maven Integration  for Eclipse WTP” и “Maven Integration for Eclipse Extras”. Теперь, если вы создаете WebApp из Maven Archetype, то вы сможете его запускать непосредственно из IDE в интегрированном Tomcat. Но обо всем по порядку. Для того, чтобы создать WTP проект из Archetype выполните File>New>Other>Maven Project далее нажмите Next, в новом окне выберете maven-archetype-webapp, Next, введите Group Id и Artifact Id и кликните по Finish. Если вы создали WPT проект из Maven до установки m2e-extras, щелкните правой кнопкой по проекту и выполните Maven>Update Project Configuration.
Для запуска проектов я рекомендую установить tomcat при помощи eclipse. Это делается следующим образом Windows>Preferences>Server>Runtime Environments>Add. Далее обязательно установите галочку “Create a new local server”, предворительно выбрав Apache Tomcat v6.0, нажмите Next, Download and Install и дождитесь пока он установится в выбранную вами папку. Вот и все! Теперь вы можете выполнить для вашего проекта Run as > Run on Server. Если вы внесете изменения в код запущенного проекта, они автоматом будут синхронизированы с сервером. Можно, конечно, использовать системный tomcat, но с его настройкой будут большие проекты, т.к. к примеру, в Ubuntu его разнесло на кучу каталогов и eclipse не может найти нужные его файлы.
Я не рассматривал IntelliJ IDEA, хотя эта среда очень популярна у Java-разработчиков. Причина проста - опыта разработки в ней у меня пока что нет. Если вам доводилось работать с ней - напишите свои впечатления.
Для себя я остановился на Eclipse для разработки под JavaEE, а Netbeans оставил под JavaMe и Netbeans Platform.

1 комментарий:

Veiman Alexander комментирует...

Eclipce наше все! Правильно писать "Visual Studio".

Отправить комментарий