Посты с тэгом «eclipse»

  • Автоматическое копирование файлов на FTP/SSH в Eclipse

    В последнее время все чаще и чаще слышны просьбы веб-разработчиков сделать удобную работу в любимом редакторе/IDE, чтобы изменившиеся файлы автоматически попадали на удаленный сервер. Самый простой способ решить эту задачу — редактировать файлы напрямую на сервере. Хотя это вполне рабочее решение, у него есть ряд недостатков, самый большой из которых: отсутствие локальной копии файла. В случае, если ваш коллега через 5 минут закачает свою, исправленную и дополненную версию файла, можно быть уверенным, что ваши изменения потеряются безвозвратно. Более того, этот способ годиться только для мелких исправлений, на 5—10 минут. Если же нужно решить какую-то более глобальную задачу, дней на 5, например, вам в любом случает придется держать локальную копию проекта, чтобы спокойно переводить его в нерабочее состояние.

    Самый правильный способ решения задач с синхронизацией файлов, который проповедуют все маститые разработчики — использовать систему версионного контроля (VCS), вроде SVN или Git. Рабочий процесс в этом случае выглядит следующим образом. Разработчик локально, у себя на компьютере, вносит необходимые изменения и делает коммит в репозиторий. В этот момент у репозитория срабатывает хук (некий скрипт), который берет изменившиеся файлы и закачивает на продакшн-сервер. Это идеальное решение для командной работы, когда необходимо объединять свои исправления с чужими. И еще, как бонус: нет необходимости бегать по 10 разным папкам и вручную копировать изменившиеся файлы на сервер. Достаточно нажать всего на одну кнопку — и абсолютно все необходимые файлы оказываются на сервере. Многих, почему-то, пугает такая «сложность», хотя на настройку окружения требуется времени не больше, чем на очередной перекур или чтение новостей.

    Ну ладно, оставим это на совести каждого конкретного человека. Недавно у меня возникла, скажем так, промежуточная задача. Весь проект лежит в SVN, автоматом закачивается на продакшн — все работает просто замечательно. Только сайт написан на Java, и для его локального запуска требуется ой как много ресурсов, особенно если параллельно работает Eclipse, фотошоп и виртуальная машина с виндой. Обычный рефреш страницы занимал минуту. И я озадачился тем, чтобы над проектом можно было работать локально, а вот проверять его можно было на удаленном dev-сервере. То есть я правлю файл, сохраняю его, при необходимости делаю build (объединение и минификация JS и CSS) и все изменившиеся файлы автоматически попадают на dev-сервер, без каких-либо лишних телодвижений. Решение оказалось довольно простым и элегантным, возможно, сработает и для других редакторов и IDE. Итак:

    1. Под *nix системы есть замечательный проект под названием FUSE, который позволяет монтировать удаленный сервер как обычную папку в локальной файловой системе. На Маке я использовал MacFuse + оболочку MacFusion для настройки FTP/SSH-серверов. На винде можно использовать платный WebDrive или NetDrive для этих же целей.
    2. Устанавливаем FUSE или WebDrive/NetDrive, настраиваем подключение к серверу и монтируем его как локальную папку.
    3. Для Eclipse ставим плагин FileSync, задача которого — автоматически синхронизировать проект с какой-нибудь внешней папкой. Синхронизация одностронняя: копируются файлы из проекта в папку, но не из папки в проект.
    4. Идем в настройки проекта (Project → Properties) в секцию File synchronization и настраиваем синхронизацию для проекта (пример с сайта разработчика):

      Настроить синхронизацию можно довольно гибко: можно исключить какие-то папки из синхронизации, можно использовать переменные в путях.

    5. Не забываем включить автобилд (Project → Build Automatically), чтобы при любом изменении ресурсов проекта файлы автоматически синхронизировались, и опцию General → Workspace → Refresh automatically в настройках Eclipse, чтобы файлы, добавленные вне Eclipse (например, картинку новую скопировали) автоматически появлялись в проекте.

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

    UPD: Решение от Neolord для работы со стандартным синхронизатором из Aptana.

  • Установка Aptana на Eclipse Galileo 3.5

    UPD: вышла Aptana 1.5, которая без проблем ставится на Eclipse 3.5 из update site: http://update15.aptana.org/studio/24896/ (спасибо Vii за ссылку). Так что все остальное тут написанное можно рассматривать как еще один способ установки плагинов.

    Вышел новый Eclipse Galileo 3.5, а в месте с ним появились очередные проблемы с совместимостью со старыми плагинами. Одна из самых неприятных проблем для меня — Aptana ни в какую не хочет ставится из update site. Как выяснилось, эта проблема вполне решаемая.

    1. Качаем любой дистрибутив Eclipse Galileo и распаковываем его.
    2. Качаем альфа-версию Aptana Andretti по секретной ссылке. Скачивать лучше zip-архив, а не установщик. Также распаковываем его.
    3. Запускаем Aptana Andretti. При первом запуске появится окошко Install Additional Features, в самом низу выбираем опцию Do not show again. Закрываем Aptana.
    4. Из той папки, где у вас находится Aptana, берем папки plugins и features и копируем их в папку dropins той директории, куда вы распаковали дистрибутив Eclipse.
    5. Запускаем Eclipse. Он при запуске спросит, какой workspace хотите использовать. Нужно выбрать тот, который был создан Aptana (папка Aptana Studio Workspace где-то внутри стандартной директории с документами), иначе при каждом запуске Eclipse будут вываливаться ошибки. Насколько я понял, их вызывает тот самый Install Additional Features, который пытается запуститься при запуске (поэтому нужно было выбрать Do not show again). Отключается это некой переменной, хранящейся внутри .metadata рабочего пространства, которую пока лень искать.
    6. Для надежности в настройках отключаем Welcome Screen (Aptana → My Aptana → Never display after startup) и перезапускаем Eclipse. Должно все работать как надо.
    Метки: , ,
  • Подключение entity в XSL-шаблон

    Я очень люблю использовать XSL в качестве шаблонизатора — более гибкого механизма для вывода HTML/XML не придумаешь. А еще я использую Eclipse в качестве основной среды разработки: хоть он тяжелый и глючный, собака, но он единственный удовлетворяет большинство моих потребностей (никуда не перелезу, пока там не появится аналог PyDev и Mylyn).

    Шаблоны, которые я использую, построены на кастомных энтити. Так как XSL-переменные нельзя использовать в атрибуте match шаблона, это довольно удобный способ их эмулировать:

    <!ENTITY navigation "/document/system/navigation[@type = 'root']">
    ...
    <xsl:template match="&navigation;">
    	<ul id="nav">
    		...
    	</ul>
    </xsl:template>
    

    Все энтити хранятся в отдельном файле (entities.dtd), которые я подключаю вот так:

    
    <!DOCTYPE xsl:stylesheet SYSTEM "entities.dtd">
    
    <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	...
    </xsl:stylesheet>
    

    В «штатном» Eclipse XSL editor это приводит к тому, что перестает code complete по XSL-тэгам — это баг всего Web Tools Project, связанный с тем, что при одновременном использовании XML Schema и внешнего файла с энтити предпочтение по code complete отдается последнему. Поиск решения этой проблемы привел меня к довольно интересному открытию. Теперь энтити я подключаю вот так:

    <!DOCTYPE xsl:stylesheet [
    	<!ENTITY % core SYSTEM "entities.dtd">
    	%core;
    ]>
    

    Это не только восстанавливает работу code complete, но и добавляет следующее преимущество: можно создавать локальные энтити в каждом файле и матчить на них шаблоны:

    <!DOCTYPE xsl:stylesheet [
    	<!ENTITY % core SYSTEM "entities.dtd">
    	%core;
    	<!ENTITY my_entity "/path/to/element[@with = 'very complex expression']">
    ]>
    ...
    <xsl:template match="&my_entity;">
    	сделать что-нибудь
    </xsl:template>
    
    <xsl:template match="&my_entity;[@some_attr = 'true']">
    	сделать что-нибудь другое
    </xsl:template>
    
    Метки: , ,
  • Знакомство с Ant

    Краткое введение по автоматизации рутинных задач в IDE. Тут обсуждают статью и задают вопросы.

    Метки: ,
  • Eclipse: редактирование JavaScript в Spket IDE

    Демонстрация возможностей редактирования JavaScript в плагине Spket IDE.

    Метки: ,
  • Eclipse: знакомство, плагины

    Попытка агитации студийных разработчиков перейти на более высокий уровень разработки сайтов. На тот момент я пользовался Эклипсом около года и успел его немного изучить и проверить много плагинов к нему. Сразу скажу, что от этой IDE я далеко не в восторге, об этом будет отдельный пост.

    Метки: