среда, 28 сентября 2011 г.

Быстрая работа: Настройка Eclipse для работы с CouchDB

Мы настроили Eclipse для работы с CouchDB. Я ленивый человек. И меня совсем не радует после любого изменения в коде нажимать кнопку "П", чтобы обновить данные в хранилище CouchDB. Этот процесс можно нужно автоматизировать.

Eclipse умеет много замечательных вещей. И одна из них - выполнение команд при изменении файла. Настроим Eclipse т.о., чтобы изменения файлов проекта сразу отражались в CouchDB.

Для этой цели понадобятся:
  • CouchApp. Позволяет обновлять базы CouchDB из командной строки.
  • Ant. Если Вы ещё не встречались с Муравьём (англ. ant - муравей), рекомендую познакомиться. Он умеет автоматизировать сборки любых проектов как никто другой (уж простите, поклонники make и Maven).


Устанавливаем CouchApp

Воспользуемся возможностями Ubuntu и соберём CouchApp из PPA-репозитория. Пишем в терминале.
~$ sudo add-apt-repository ppa:couchapp/couchapp
~$ sudo aptitude update
~$ sudo aptitude install couchapp


С возможностями CouchApp можно ознакомиться на этой странице > couchapp.org/page/getting-started
А здесь - couchapp.org/page/videos - видеодемонстрации (на английском).

Но мы ведь настраиваем Eclipse. Достаточно сейчас научить Eclipse работать с нашим проектом, и, уверяю, о CouchApp Вы долго вспоминать не будете.



Устанавливаем Ant

Я не нашёл более простого способа установки, чем подключение компонентов от Java.

Заходим в меню Eclipse > Help / Install New Software...
Выбираем адрес http://download.eclipse.org/releases/indigo
Дожидаемся загрузки, находим Eclipse Java Development Tools и устанавливаем.


Что умеет Ant можно почитать здесь > opennet.ru/base/dev/ant_10.txt.html
Мы же попросим его собирать наши проекты для CouchDB.




Учим Eclipse собирать проект для CouchDB

Создаём файл build-couchdb.xml и помещаем его в корневую папку проекта Eclipse. Содержимое файла:
<project name="НазваниеВашегоПроекта"
      basedir="." default="make">

  <description>
    Сборка проекта "НазваниеВашегоПроекта".
  </description>

  <property name="workspace" value="${basedir}" />
  <property name="source" value="${workspace}/" />
  <property name="destination"
      value="http://login:password@localhost:5984/" />


  <target name="init">

    <!--
    - Здесь можем что-то выполнить до размещения
    - файлов проекта в CouchDB. Например, получить
    - время сборки проекта.
    -->
    <tstamp>
      <format property="touch.time"
          pattern="dd-MM-yyyy HH:mm" />
    </tstamp>

  </target>


  <target name="push" depends="init">

    <echo>^</echo>
    <echo>
        Добавление '${source}НазваниеПапкиСПроектомCouchDB'
        в '${destination}НазваниеБазыCouchDB'
    </echo>
    <exec executable="couchapp">
      <arg value="push" />
      <arg value="${source}НазваниеПапкиСПроектомCouchDB" />
      <arg value="${destination}НазваниеБазыCouchDB" />
    </exec>

  </target>


  <!-- Старт-блок -->
  <target name="make" depends="init, push">
  </target>

</project>
Правой кнопкой в Навигаторе Eclipse нажимаем на build-couchdb.xml и выбираем Run As / Ant Build...
В открывшемся окне становимся на вкладку "Refresh" и устанавливаем метки так, как показано на скриншоте ниже (скриншоты можно увеличить, кликнув на них). Затем жмём на "Specify Resources..." и отмечаем папки проекта, файлы из которых должны быть согласованы с CouchDB.

На вкладке "Build" проделываем то же самое. Отмечаем проект. См. скриншоты.
Жмём кнопку "Run" и если файл XML написан верно, счастливо наблюдаем, как проект появляется в CouchDB.


Всё? Ан нет! Проект сам собираться не будет пока не проделаем следующее:

В Навигаторе Eclipse правой кнопкой мыши жмём на проект и выбираем "Properties". В открывшемся окне становимся на свойство "Builders".
Нажимаем кнопку "Import..." и выбираем созданную раньше конфигурацию сборки проекта. "Ок".
Жмём на "Edit...". Заходим на вкладку "Targets" и устанавливаем для "Auto Build" такие же параметры, как у "Manual Build".
Также проверяем, что на вкладке "Build Options" установлен флажок "Specify working set of relevant resources" и в качестве ресурса - кнопка "Specify Resources..." - указана папка, содержимое которой должно отслеживаться на изменения.


Проверим наши труды. Откройте любой файл проекта из папки, отмеченной для отслеживания (см. последнюю картинку, "Build Options"), и допишите что-то в него.  Как только файл будет сохранён, в консоле Eclipse Вы увидите, как заработал Муравей, быстро-быстро перебрасывая в CouchDB изменения.


Ух! Наконец-то можно настроить CouchDB как веб-сервер и забыть об Apache, MySQL и PHP как о страшном сне. Расскажу как на след. неделе.

Приятной работы!

Комментариев нет: