Руководство java разработчика il-2 FreeHost




Скачать 72.18 Kb.
НазваниеРуководство java разработчика il-2 FreeHost
Дата публикации14.05.2013
Размер72.18 Kb.
ТипРуководство
odtdocs.ru > Право > Руководство
Руководство java разработчика IL-2 FreeHost
В редакции от 19.12.2008

Автор: Сергей Чистяков (barmal)



Дистрибутивы
Для работы с проектом необходим следующий софт, установленный на компьютере:



Принципы работы в проекте
Ппроект IL-2 FreeHost находится под управлением SVN. Если вы не знаете что такое SVN и зачем он, читайте мануал самого SVN или Приложение 1 к этому документу(смотрите конец документа)
Все взаимодействие разработчиков между собой и с багтестерами ведется через систему отслеживания багов Mantis.

Адрес системы http://il2dev.tspace.ru/mantis/.

Принцип работы в мантисе прост – один вопрос на одну проблему. Механизм мантиса показывает кто ответственнен за решение проблемы, ее статус, важность, приоритет. Осваивайте интерфейс мантиса. Для регистрации на нем используйте живой почтовый ящик, для того, чтобы вам приходили все уведомления о ходе изменения вопросов, поднятых в мантисе и за которые вы ответственны, или отслеживаете.
По умолчанию пользователь в мантисе видит только несколько проектов, открытых всем. В нашем случае это проект IL-2 FHMOD BUGS и его подпроекты. Для разработчиков существуют проекты с ограниченной видимостью, если вы не увидите в мантисе проект IL-2 FHMOD и его подпроекты client, server и server Maps, то обращайтесь за доступом ко мне.
^ Подготовка к разработке, структура файлов проекта
После того как вы установили софт и изучили его возможности, приступайте к скачиванию проекта из репозитория и настройке путей в системе и командных скриптах.
Скачиваение последней версии проекта из репозитория происходит так. Я буду говорить как действовать через консольную версию SVN.

  • С помощью FAR или любого другого менеджера способного работать с командной строкой windows встаете где нибудь в папке, где предполагаете будет лежать папка с проектом

  • выполняете команду SVN checkout:

    c:\>svn co http://80.72.210.218/repos/il2_java/

  • У вас спросят логин и пароль. Если вам его не дали спросите у меня. Также необходимо будет сообщить мне рабочий e-mail через который вы будете получать уведомления о изменениях в файлах проекта

  • svn скачает из репозитори я весь проект и создаст в папке где вы находитесь папку il2_java

Структура папок в итоге будет примерно такая, я распишу только самые важные:

c:\il2_java\+

|-\bin\+

| |-\byte_code_client\ - ВСЕ текущие байткоды мода клиента

| |-\byte_code_server\ - ВСЕ текущие байткоды мода сервера

| |-\mod_client\ - хеши классов мода клиента

| |-\mod_server\ - хеши классов мода сервера

| |-\regexp_hashes\ - хеши пакета регекспов, которые я добавил в ил

| |-\resolver\ - утилитка qtim для резолвинга хешей

| |-classhasher.jar - утилита qtim для создания хешей из байткодов

| |-make_mod.bat - скрипт для сборки mod_client

| |-make_server.bat - скрипт для сборки mod_server

| |-runil2.bat - чтоб долго не бегать к илу, запуск его

| |-runserv.bat - чтоб долго не бегать к илу, запуск его

| |-targets.txt - список классов, которые надо откомпилить, чтобы

| | получился мод клиента

| |-targets_server.txt - то же для сервера

| |-update.bat - список каталогов и файлов, которые необходимо

| апдейтить, чтобы иметь самые свежие байт коды и

| таргеты, если они устареют довольно сильно, то

| не сможете из текущих байткодов и

| сырцов собрать мод

|

+-\src\ - исходные сырцы ила и байткоды, не модифицированные

+-\stable\ - стабильные версии различных компонент сервера

+-\trunk\+ - папка в которой происходят текущие работы

| по изменению сырцов модов

|-\client - проект Eclipse с кодом клиента

|-\devel_stuff - всякие вспомогательные файлы

|-\server - проект Eclipse с кодом сервера

Настройте Eclipse к работе с проектами из папок \trunk\client\ и \trunk\server\. Для этого запускаем Eclipse -> File -> Import -> General -> Existing projects into workspace -> выбрать папку client -> он найдет там проект -> поставить на нем галку -> next и все импортируется

То же проделать с папкой server.

В результате слева в еклипсе у вас должно быть два проекта. Можно потом еще убрать галку -> Progect -> Buil Automaticaly
^ Как это все компилится и работает.

Мод ила представляет из себя набор хешей байт кодов Java классов, лежащих в одной папке. В нашем случае в папке mod_clent или mod_server. Елси эти фалы положить в каталог MODS пропатченного Ил-2, то он при загрузке считывает эти файлы и использует их код в своей работе.

  • Чтобы получить хеши необходимо готовые байт коды классов, которые мы модифицировали, обработать утилитой qtim classhashe.jar.

  • Чтобы получить байт коды, необходимо откомпилировать нужные нам классы. Мы не можем в Eclipse нажать кнопку build и откомпилировать полностью весь проект ил2, из за того что во многих декомпилированных классах есть ошибки, а некоторые классы вообще не декомпилировались.

  • Поэтому мы используем следующий трюк: мы компилируем модифицированные классы так, что недостающие иловские классы (а это все то что мы НЕ модифицировали) компилятор берет из оригинальных байткодов ила (содержимое папок \bin\byte_code_client и \bin\byte_code_server). Попросту указываем туда CLASSPASS. Причем результаты наших компиляций мы туда же и ложим, чтобы в дальнейшем можно было их использовать в последующих компиляциях, поэтому содержимое этих папок меняется и влияет на возможность сборки всего мода в целом. Например если вы сейчас возьмете нетронутые байткоды ила, и с помощью них попробуете откомпилировать сырцы модифицированных классов, то они не окомпилятся в принципе, так как в нетронутых байткодах ила нет тех многих функций и переменных и классов, кторые я добавил в процессе создания мода.

  • После того как мы откомпилировали наши классы, например клиента, мы помещаем их из \bin\byte_code_client в некую tmp директорию, рекомендую всем в bin такую создать, и не добавлять ее в SVN. После чего на эти файлы натравливается хешер кутима, и готовые Хеши мы раскладывам в каталог mod_client и в каталог самого ила, чтобы далеко не бегать и не копировать руками свежескомпиленые файлы в ил2.

  • Всем этим занимаются скрипты make_mod.bat и make_server.bat так что нам остается толко прописать правильно пути до директорий с проектами eclipse, bin, самого илаи потом только править яву и вызывать эти скрипты для компиляции.

  • Для того чтобы скрипты, собирающие мод, знали какие же конкретно классы необходимо компилить, есть файлы targets.txt и targets_server.txt Если вы начали править класс, которого нет в этих файлах – добавьте его туда и сделайте коммит в SVN, чтобы остальные разработчики занли о таком важном изменении в проекте. Обычно в работе необходимо компилить только пару классов, все перекомпиливать приходится редко, поэтому для удобства можно таргетные классы коментировать в начале строки решеткой #. Тогда скрипты такой класс не компилят.


^ Рекомендации по отладке кода.
Так как мы не можем компилить наш мод в еклипс и запустить его там не можем, то к сожалению весь инструментарий отладки нам не доступен. Поэтому остается только принт сообщений в системную консоль ила (вызывается в иле по ctrl+tab). В жаве самый простой принт составной строки выглядит как

System.out.println(строка + строка + интегер + строка);

Еще очень полезно использовать механизм exception.

Например так, если вы хотите наверняка вызвать exception:

try { 5/0 } catch (Exception exception) { exception.printStackTrace(); }
будет получен ексептион деления на ноль и вы увидите стек функций, полезно его видеть если не знаешь откуда же был вызван этот класс.
Так что процесс отладки выглядит так. Правим, компилим, идем в ил смотрим console log.

Приложение 1

О работе в SVN
SVN - это от слова SubVersion.
Концепция SVN следующая. У вас есть некий набор файлов, все что угодно, но обычно это некая программа или что либо такое, что внутрях себя содержит много текста. Над этими файлами ведется работа, например их изменяют, копируют, удаляют, добавляют какие-то новые файлы и прочая. Так вот, грубо говоря, если файлы находятся под управлением SVN, то любое изменение в файлах фиксируется, запоминается и ведется лог изменения. Это позволяет в любой момент времени установить, а что же тут или там менялось(какие имеено строки были удалены, заменены), кто менял, зачем и прочая.
В общем очень удобно и файлы никогда не теряются и не пропадают рабочие куски кода. Однажды поппав в проект любой файл или текст в нем остается навсегда, даже если вы его сотрете потом из рабочих файлов проекта, по логам сервера его всегда можно будет восстановить.
Ближе к делу
GUI SVN интегрируется в Проводник винды. Это значит, заходите

через мой компьютер или как угодно в любую удобную для вас папку,

или создаете новую, щелкаете там правой мышкой, в обычном контекстном

меню появятся новые менюшки SVN.

Выбираете SVN извлечь. Выплывет диалог, неопоходимо будет указать

путь к репозиторию проекта.

http://il2.tomsk.ru/repos/il2_java/
Жмете потом ОК, у вас спросят пароль и логин, потом по идее больше

никогда не спросят. Логин и пароль выдается каждому разработчику

индивидуальный.
Потом скачивается наипоследняя версия проекта.

Причем там в проекте будут присутствовать везде папочки .svn

на них не обращать внимания, это свн служебные папки,

места они много не занимают, а ему нужны.
После того, как вы у себя на компе заимели рабочую версию

проекта под управлением SVN можно приступать к работе с ним.
Работать можно как угодно. Вы работаете у себя локально, а не на сервере.

Но после того как закончили править файлы вам нужно утвердить ваши

изменения, чтобы они отобразились на сервере.

Поэтому правой кнопокй мыши щелкаем, и там есть пункт Фиксировать.

Там предлогается потом диалог, необходимо написать логзапись.

Коротенько описываете, что же вы хотите утвердить и зачем.

Это во первых нужно для вас самих, через пол года будете знать

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

Этих фиксаций(ревизий) может быть очень много. По номеру ревизии

вы всегда можете определить, а свежаю ли копия проекта у вас,

если нет то жмем обновить и СВН проверяет что изменилось и вносит

эти изменения в вашу рабочую копию.
Если вы вдруг напортачили с каким-то файлом, то просто жмете

Убрать изменения из контекстного мени по правой кнопке, и все

возвращается до начало работ как было. Очень удобно.
Цикл работы с проектом выглядит так:

1. Обновить проект (вдруг кто-то пока вы спали что-то сделал с проектом)

2. Изменяем файлы.

3. Снова обновляем проект, на всякий случай, вдруг файл который

вы изменили кто-то уже поправил и возник конфликт изменений.

СВН все это показывает кстати прямо в проводнике. Зеленая галка -

с файлом все ок, восклицательный знак - вы его изменили, +

вы добавили этот файл к хранилищу(и после фиксации он будет

закачан на сервер и его увидят все остальные пользователи хранилища) и прочее.

4. Жмем фиксировать изменения. Заполняем журналюную запись. Наблюдаем как все фиксируется.

5. К вам на почту и всем остальным приходит письмо, с журнальной записью и логом сервера.
Вот в кратце все.

Подробнее доку можно почитать в каталоге с дистрибутивом.

Но там больше про консольный клиент рассказываетсяя(родной свновский).

Лично я пользуюсь консольным клиентом.

Добавить документ в свой блог или на сайт

Похожие:

Руководство java разработчика il-2 FreeHost
Такую работу прийдется вести так как в еклипсе будет только сам java код, а все остальное отдельно, хотя можно в еклипс было все...

Библиографический указатель книг, поступивших в библиотеку
Берд Дж. Веб-дизайн. Руководство разработчика / Дж. Берд; пер c англ. О. Сивченко. Спб. Питер, 2012. – 218 с.: ил., 32 с цв ил

Лабораторная работа №4 по курсу «тфкп» на тему: «Типы данных, переменные,...
Изучить типы данных, правила объявления переменных, констант и массивов в языке Java. Научиться создавать программы на языке Java,...

Лабораторная работа №4 по курсу «тфкп» на тему: «Типы данных, переменные,...
Изучить типы данных, правила объявления переменных, констант и массивов в языке Java. Научиться создавать программы на языке Java,...

Лабораторная работа №4 по курсу «тфкп» на тему: «Типы данных, переменные,...
Изучить типы данных, правила объявления переменных, констант и массивов в языке Java. Научиться создавать программы на языке Java,...

Установка и настройка backserver
Первым делом убедитесь что у вас установлена java версии 0 20 или выше. Если это не так — установите последнюю версию Java Sun

Чем отличаются Java-приложения и Java-апплеты?
Что такое первичный класс приложения? Какой обязательный метод он должен содержать?

Лабораторная работа №4 по курсу «тфя» на тему: «Разработка веб-приложений с помощью Java»
Убедиться, что все правильно сконфигурировано с помощью команд java -version, javac -version

Предпосылки использования хранимых процедур на языке Java
Обзор, разработка и использование хранимых процедур, написанных на языке Java в субд oracle

Руководство кассира-оператора
Данное руководство является кратким справочным описанием для кассира-оператора по работе в конфигурации "Торговля и склад. Ред. 2"...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница