Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Подобие солюшн в J2EE-проектах


Автор: Entry_N3 5.11.2008, 13:17
Привет. 
Есть желание настроить j2ee-проект для Eclipse и поместить его в систему хранения исходников. При этом есть желание добиться эффекта как MS-солюшнах: любой разработчик берет проект и ему ничего не надо настраивать (сразу запустил на компиляцию, не надо указаывать, где папка с исходным кодом, а где просто с документами). 
Как воплотить желание в реальность? Идеи?
Спасибо.

Автор: powerOn 5.11.2008, 14:13
Цитата(Entry_N3 @  5.11.2008,  13:17 Найти цитируемый пост)
Как воплотить желание в реальность?


ant, maven
один раз пишется билд скрипт.


Автор: fixxer 5.11.2008, 14:43
а в случае мавена может и вообще ничего не пишется, а выбирается нужный архетип.

Автор: Entry_N3 5.11.2008, 15:09
powerOn
fixxer
т.е. это будет похоже на солюшн как в M$? Eclipse тут не при чем?

Автор: fixxer 5.11.2008, 15:50
Я не знаю как там в солюшенах, но Eclipse, действительно, совершенно не при чем. 

Автор: Entry_N3 5.11.2008, 17:32
Можете описать, что есть maven (google не предлагать, там не опыта)?

Автор: Shurr 5.11.2008, 17:45
Entry_N3
Если интересует только сборка - тогда, как уже писали выше, ant или maven. Для работы с кодом нужно положить в vcs эклипсовые файлы настроенного проекта.

Автор: Entry_N3 5.11.2008, 18:35
"эклипсовые файлы настроенного проекта" - это какие?

Автор: powerOn 5.11.2008, 18:51
Цитата(Shurr @  5.11.2008,  17:45 Найти цитируемый пост)
Для работы с кодом нужно положить в vcs эклипсовые файлы настроенного проекта. 


не надо так делать.  с проектом могут работать люди использующие не только Eclipse. Да и в целом, Eclipse это IDE, а не build tool.

Автор: Entry_N3 5.11.2008, 19:31
powerOn, так решено договориться, что все на Eclipse. И мечта просто взять проект (импорнуть) и все настроено сразу.

Автор: powerOn 5.11.2008, 19:37
ну а как насчет continuous integration? автоматизации билдов (cruise control какой-нибудь)? ... или у вас несерьезный проект?

Автор: fixxer 5.11.2008, 23:57
powerOn, +1


Entry_N3, с помощью мавеновских плагинов можно генерировать проект для нужной IDE.

Автор: Entry_N3 6.11.2008, 14:48
powerOn
fixxer
прислушаюсь.

Shurr, "эклипсовые файлы настроенного проекта" - это какие? 

Автор: Shurr 7.11.2008, 18:58
Entry_N3
Конфигурационные файлы, создаваемые эклипсом для проекта. 
Файлы ".project", ".classpath", возможно папка "settings" и пр. Настрой проект в эклипсе, и посмотри что он создаст.


Автор: alexsmirnov 8.11.2008, 08:45
Вообще, для Java  желательно изначально использовать системы вроде ANT или Maven для построения проектов, не привязываясь к конкретной Ide. Разные разработчики могут использовать разные IDE, разные версии, да и просто иметь свои предпочтения по настройкам. Плюс, привязка к IDE усложняет continuous integration - на сервере использовать настройки проблематично.
 Мы используем следующую структуру :
- SVN в качестве репозитория.
- Maven ( http://maven.apache.org ) в качестве build tool. 
- Для разработки используется в основном Eclipse. Каждый может импортировать проект через плагин ( в основном m2eclipse ) или через команду того-же maven. Для Netbeans или Idea - аналогично. Настройки IDE и рабочие папки помечены как svn:ignore, каждый волен настраивать как хочет.
- Для регулярных билдов используется Hudson ( https://hudson.dev.java.net/ ). Сборка на нем запускается в максимальной конфигурации, со всеми тестами, javadoc и отчетами ( findbugs, checkstyle, PMD, test coverage ). Все косяки видны сразу.
- Результаты сборки в Hudson публикуются в корпоративном репозитории ( Nexus, http://nexus.sonatype.org/ ). Этот же репозиторий используется как proxy - то есть если проект ссылается на какую-то библиотеку, она грузится через inet только 1 раз. Далее только по локальной сети, т.е. быстро. Если кто-то работает только с отдельным модулем ( например, web-девелопер или EJB ), ему не надо собирать весь проект локально - можно использовать результат с сервера.
- Ошибки сборки сразу попадают в Jira. Она также настроена на связь с SVN - если в комментарии commit сослаться на конкретный task, то список сразу добавится к аомментариям.
У Maven есть достоинства и недостатки, но мне кажется для коллективной разработки он заточен лучше всего :
1) Систама управления библиотеками и зависимостями. Ни одного Jar в репозитории кода или в проекте, никаких проблем с версиями и зависимостями.
2) Фиксированная структура проектов, легче разбираться и поддерживать порядок.
3) иерархия настроек, нечто вроде наследования в OOP. На всю фирму есть один корневой проект, в котором настроены типовые конфигурации, отчеты, стили etc. все остальные на него ссылаются.
P.S. В любом проекте всегда выделяется роль "build engeneer", кто отвечает за настройки сборки.

Автор: v2v 8.11.2008, 19:39
alexsmirnov, Красота!!

Автор: Entry_N3 11.11.2008, 11:40
alexsmirnov,  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)