Pull to refresh

Comments 8

Интересная штука.

У меня сейчас процесс выглядит так:
1) есть perforce-репозиторий c независимым от IDE кодом (насколько это возможно, учитывая что там есть код плагинов для эклипса, а сам проект работает на Equinox)
2) клонирование репозитория
3) в идее: new project -> from external model -> maven,
4) проставить там нужные галки (например, чтобы всякие .idea/iml хранились в домашней папке пользователя, а не в репозитории из которого импортится проект), согласиться чтобы использовал output directory из самого мавена
5) выставить в настройках идеи интеграцию с VCS Perforce, заменить кодинг-стайл на эклипсовый, подключить реализацию OSGI вначале в общем конфиге и присобачить ее к конфигу проекта
6) поесть и поспать пока она распарсит зависимости pom'ов, проиндексирует полгига жавных исходников и скачает все нужные sources & documentation для мавеновских артефактов по зависимостям

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

1. клонировать репозитарий
2. команда mvn idea:idea (конечно, после добавления в pom.xml конфигурации плагина и ссылки на репозитарий)
3. можно открывать проект.

минусы:
1. iml'ки создадутся в папке проекта, но будут добавлены в список игнорирования, поэтому они не будут мешаться, в общем, я не вижу проблем с iml'ками внутри проекта. Если их надо все удалить, то «mvn idea:clean» делеает это.
2. В меню Version Control будет пусто, пока распознаются только Subversion проекты. Добавить распознавание других VCS можно, нужен Issue в Google Code.
3. В меню Coding Style будет стоять «Use global settings». У вас «Use per project settings»? Это оправдано? Если «Use global settings», то Coding Style достаточно один раз указать и он сохранится в глобальных настройках IDEA и будет использоваться для всех новых воркспейсов.

>подключить реализацию OSGI вначале в общем конфиге и присобачить ее к конфигу проекта
не понял, это в какой настройке IDEA делается?
Это делается в настройках Global Libraries. Сначала идея автоматически подключает в Library с названием ECLIPSE эклипсовый сдк (лежит в репо в org/eclipse/sdk/eclipse_version_here/plugins)ю Потом мы в нашем проекте добавляем еще одну папку с нашими собственными плагинами (у нас называется osgi-libs-...). И то, и другое указано в помнике родительского проекта.
> Добавить распознавание других VCS можно, нужен Issue в Google Code.

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

круче бы была возможность создавать iml'ки вне дерева исходников)

собсно я файлы проектов не храню в контроле версий потому, что они сильно зависят от конкретной машины на которой будет собираться. Операционная система, пути, ограничения на пути (в винде очень маленькая максимальная длина пути к файлу, в рзультате склонировать репозиторий в «Мои документы» в винде уже нельзя), ресурсы типа количества оперативной памяти (важно для мавена), настройки переменных окружения (в винде есть проблемы с тем же PATH — начиная с определенной длины PATH венда начинает некорректно его обрабатывать) итп

> У вас «Use per project settings»? Это оправдано?

оправдано, у заказчиков свои coding-style'ы, какой скажут такой и юзать)

> не понял, это в какой настройке IDEA делается?

Открываем глобальные настройки (которые ctrl+alt+s), IDE Settings -> OSGi, добавляем новый экземпляр во Framework Definitions, потом Project Settings -> OSGi, выбираем реализацию OSGi framework to use, ставим галку «создать модуль со всеми бибилиотеками» по вкусу (я ставлю, хотя галка и глючная). Ну и потом ждем пока идея пробежится по проекту, найдет facets и переиндексирует что нужно.
Попробовал, idea делает кучу глобальных библитек, та галочка делает псевдомодуль, добавляет в него все эти либы, а потом у нужных модулей ставит зависимости от этого псевдомодуля. Если я все правильно понял, то это не по-мавеновски как-то получается.

Почему бы не поставить зависимость от либ OSGI в pom.xml? В repo1 есть Equinox, а если нету нужной версии, то можно поднять свой репозитарий в компании, например, Artifactory, и в него все добавить.
можно что-то сделать чтобы в свой pom.xml ничего не добавлять?
С использованием maven plugin — нельзя ) Потому что как минимум конфигурацию плагина придется-таки в pom.xml добавлять.
Вы можете объявить профиль активный по умолчанию в settings.xml вашего мавена и в него добавить типичные настройки для плагина.
Ну и при необходимости добавлять специфичные настройки в pom.xml своего проекта.
Sign up to leave a comment.

Articles