RU:JOSM/Build

From OpenStreetMap Wiki
Jump to navigation Jump to search

Зачем это нужно

  • Вы хотите посмотреть код JOSM
  • Вы хотите создать свой плагин или изменить существующий
  • Вы хотите предложить изменения в код JOSM или в стандартные стили/заготовки

Свои предложения разработчикам по-английски пишем в карточки на http://josm.openstreetmap.de/

Профильные темы на форуме: [вопросы ] [пожелания]

Вся официальная информация по разработке JOSM и плагинов находится по адресу http://josm.openstreetmap.de/wiki/DevelopersGuide

Здесь представлено просто вольное изложение для не-программистов и начинающих.

Если хочется просто посмотреть код или узнать, кто что изменял - Вам сюда: JOSM - http://josm.openstreetmap.de/browser/josm/trunk Плагины - https://trac.openstreetmap.org/browser/subversion/applications/editors/josm/plugins

Изменяем отдельные файлы дистрибутива

(Если Вы хотите изменить стили по умолчанию, заготовки или картинки без перекомпиляции JOSM)

  • Возьмите любую сборку josm-custom.jar (без контроля целостности) и поменяйте нужный файл с помошью [Far manager 3.0] (открытый, подсвечивает синтаксиc и не нужно возиться с архиваторами, войти в архив - Enter, редактирование - F4, сохранить - F2, выйти - Esc).
  • Стандартные заготовки объектов находятся в josm-custom.jar/data/defaultpresets.xml
  • Два стиля по умолчанию - josm-custom.jar/styles/standard
  • Картинки, в том числе необходимые для стилей и заготовок - в josm-custom.jar/images

Скачиваем код JOSM

  • Устанавливаем svn-клиент. Под Linux-обычно
    apt-get install subversion
    

Под Windows скачиваем[TortoiseSVN] и при установке не забываем отметить галочкой "command line client tools". Кому не нужна графическая оболочка - вместо TortoiseSVN можно поставить [Subversion for windows]

  • При необходимости настройте прокси-сервер (http, https)
  • Теперь Вы можете получать код JOSM и плагинов любой версии. В первый раз нужно зайти в любую чистую папку и выполнить команду
    svn co http://svn.openstreetmap.org/applications/editors/josm josm
    

(Из TortoiseSVN можно выбрать SVN Checkout в контекстном меню проводника Windows и вставить адрес http://svn.openstreetmap.org/applications/editors/josm)

Будет скачан код JOSM и почти всех плагинов (~120 Мб).

  • Для обновления кода до последней версии выполняем в папке josm
svn update

(или SVN update в контекстном меню Проводника для TortosieSVN)

  • Если требуется старая версия JOSM -
svn update -r номер

в папке josm/core.

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

Apache Ant: http://ant.apache.org/bindownload.cgi

Под Linux - ищите инструкцию по установке для конкретного дистрибутива (apt-get ...). Далее - описание для Windows.

  • Если в командной строке не находится команда javac, допишите к переменной PATH в переменных среды папку ...jdk.../bin... через точку с запятой (например C:\Program Files\Java\jdk1.7.0_17\bin)

Сам C:\Program Files\Java\jdk1.7.0_17 занесите в новую переменную JAVA_HOME. Редактирование PATH : http://www.java.com/ru/download/help/path.xml http://setup-steps.blogspot.ru/2013/01/gui-editor-redmond-path.html

  • Распаковываем apache-ant-1.9.0-bin.zip в любую папку, например, C:\Java\Ant. Добавляем C:\JAVA\ant\bin к переменной PATH. Должна заработать команда ant.

Собираем JOSM или плагин

Теперь всё просто:

  • Меняем код, картинки или XML-настройки как захотим.
  • Заходим в папку josm/core
ant clean
ant dist

очищаем лишнее и пересобираем JOSM. В случае ошибок смотрим по номерам строк, что не так.

  • В папку josm/core/dist появляется ваш личный josm-custom.jar. Запускать - двойным щелчком или
java -jar dist/josm-custom.jar
  • Если нужно пересобрать плагин - сначала соберите josm-custom.jar, зайдите в plugins/папку плагина и выполните
ant clean
ant install

Плагин будет установлен в домашнюю папку JOSM и будет работать (если Вы его, конечно, включите и запускать будете достаточно свежий josm). Для многих плагинов запуск josm выполняется по команде

ant runjosm

Используем среду разработки

В консоли много кода не отредактируешь. Используйте [Eclipse] или чуть более дружелюбный [NetBeans]. Файлы проектов уже есть в папке josm/core и в некоторых плагинах (для остальных придётся создавать).

Делимся изменениями в виде патчей

  • Если Вы добавляли файлы, не забывайте сделать
svn add имя файла

чтобы система запомнила факт добавления (или Svn Add в TortosieSVN).

  • Изменив josm или плагин, запускаем в папке josm/core или plugins/... команду
svn diff > MySuperPatch.patch

В TortoiseSVN можно сделать тоже самое из контекстного меню проводника (Create patch).

  • Выкладываем файл MySuperPatch.patch как вложение в карточке JOSM trac: https://josm.openstreetmap.de/newticket , крайне желательно перед этим там зарегистрироваться.