3f-lab: каталог _projects (лекция 4)

Начало см.
mtaalamu.ru/topic/edit/445/
mtaalamu.ru/blog/coding/373.html
mtaalamu.ru/blog/coding/379.html
mtaalamu.ru/blog/coding/371.html

В каталоге ~/.3f-lab/_projects размещаются файлы, связанные с реализацией конкретных проектов. То есть то, что потом превращается в программы, передаваемые заказчикам или используемые для собственного удовольствия. Проекты, написанные на языке Java, могут быть реализованы в различных формах:

1. как отдельная консольная утилита;
2. как GUI-приложение;
3. как клиент-серверное приложение;
4. как веб-приложение;
5. как приложение для мобильного устройства.

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

mkdir ~/.3f-lab/_projects/MPG123


Заглавные буквы позволяют четче отличать пакеты и каталоги проектов от прочих. В дальнейшем тексте я буду подразумевать под словом «проект» каталог в папке _projects.

В зависимости от выбранной формы реализации, структура подкаталогов внутри каталога ~/.3f-lab/_projects/${PROJECTNAME} может быть разной. Для утилиты или приложения достаточно создать единственный каталог src внутри проекта. Для клиент-серверных приложений создаю папки client и server. Если предполагается работа с базами данных, то создаю еще каталог sql. Для xml(xsl, xsd, dtd) создаю каталог xml.

После написания кода и компиляции получается какой-то результат. В случае веб-приложения — это war-архив, в случае, если создается мидлет — файлы jar и jad и т.п. Для таких результирующих файлов в каждом проекте создается каталог .output.

Классы, генерируемые в ходе работы над проектом, хранятся в каталоге ~/.3f-lab/_classes в соответствии с правилами маппинга, описанными в предыдущих лекциях. То есть если проект называется MPG123, то его классы будут храниться в ~/.3f-lab/_classes/com/michaelbelyakov1967/projects/MPG123 (это, конечно, если речь идет обо мне лично) а пакет, к которому принадлежат классы, будет называться com.michaelbelyakov1967.projects.MPG123

Каждый проект содержит, помимо откомпилированных классов, различные ресурсы: графику, xml-документы, файлы properties и т.п. Поэтому в рамках проекта часто создаются соответствующие подкаталоги. Поскольку Java при исполнении программы ищет такие ресурсы в соответствии с правилами маппинга, то такие файлы и каталоги перед компиляцией и упаковкой в jar-архив необходимо копировать в соответствующие подкаталоги в ~/.3f-lab/_classes. Например, мы хотим использовать иконки в GUI-приложении и работая над проектом TEST_GUI храним их в ~/.3f-lab/_projects/TEST_GUI/src/images. Тогда перед упаковкой мы должны их скопировать в ~/.3f-lab/_classes/com/michaelbelyakov1967/resources/projects/TEST_GUI/images. Столь длинный путь я использую для того, чтобы не хранить java-псевдокод (файлы с расширением .class) вместе с ресурсами. Эффективность такого подхода неочевидна, но на практике позволяет лучше упорядочить упаковываемый контент.
  • +2
  • 11 января 2010, 22:23
  • yababay

Комментарии (5)

RSS свернуть / развернуть
+
0
Думаю, я 3flab и буду использовать — vim меня устраивает, сборка есть, консультант есть

А к eclipse и прочим IDE я равнодушен — да и тормозят они у меня на нетбуке
avatar

Sergei_T

  • 11 января 2010, 23:23
+
0
Приятно слышать, спасибо Я эту среду в колледже внедряю в образовательных целях, вроде приживается. Надо было тебе вчера LiveCD подарить пользуясь случаем.
avatar

yababay

  • 12 января 2010, 00:02
+
0
Да я думаю оно и так заработает
У меня cd привода нету )))
avatar

Sergei_T

  • 12 января 2010, 00:27
+
0
Его лучше в виртуальной машине запускать. А еще есть squashfs-образ, который можно куда-нибудь замонтировать. Если присобачить к нему aufs или unionfs — будет нормальная система с возможностью чтения-записи.
avatar

yababay

  • 12 января 2010, 00:32
+
0
avatar

Markony

  • 13 января 2010, 19:23

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.