Проект + nbactions.xml для каждого разработчика?

Я пытаюсь упростить процесс разработки для команды из восьми или девяти разработчиков. В рамках этого я перевожу наш проект на git и Maven.

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

Я пропустил nbactions.xml из .gitignore, и, к счастью, это означало, что всякий раз, когда новый разработчик извлекал код и открывал проект Maven с помощью NetBeans, он бесплатно получал настраиваемые действия (которые требуют некоторой страшной настройки).

К сожалению, когда разработчики настраивают свои параметры запуска/отладки и запускают наш проект, их действия запуска/отладки/профиля также добавляются в nbactions.xml, который затем фиксируется и перехватывает личный рабочий процесс всех остальных, когда они затем вытащите код.

Есть ли способ отделить действия, доступные в подменю «Пользовательский» (или какой-либо эквивалентный простой механизм для запуска определенных целей Maven) от конфигураций запуска/отладки, чтобы можно было контролировать версию, а другое игнорировать?

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


person Hampton Smith    schedule 18.09.2012    source источник
comment
Вы можете загрузить nbactions.xml и в пользовательском dev_setup.sh или что-то в этом роде указать git игнорировать локальные изменения с помощью git update-index --assume-unchanged nbactions.xml.   -  person Matthew D. Scholefield    schedule 21.05.2016


Ответы (2)


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

http://netbeans.org/bugzilla/show_bug.cgi?id=162764

Было бы полезно, если бы nbactions.xml и nb-configuration.xml действовали так же, как родительский POM: если у меня есть nbaction.xml в родительском проекте, все действия наследуются.

Это в основном то, что я хочу, чтобы пользовательские действия разработчика «наследовали» пользовательские действия проекта. Ответ:

Наверное непрактично...

И тикет установлен Resolved/WontFix.


Итак, на данный момент, вот моя следующая лучшая вещь:

NetBeans допускает различные профили выполнения, для которых Run/Debug/Profile, а также все настраиваемые действия могут быть определены независимо. Каждый профиль хранится в отдельном nbactions-XXX.xml, где XXX — имя профиля. Итак, я могу поместить nbactions-*.xml в .gitignore, но сделать исключение для nbactions-GroupGlobals.xml.

Это далеко не идеально: использование одной из моих настраиваемых целей означает щелчок правой кнопкой мыши по проекту, переход в меню «Профили», выбор профиля GroupGlobals, щелчок правой кнопкой мыши по проекту еще раз, переход к настраиваемым целям, запуск моей цели, правая- снова щелкнув проект, перейдя в «Профили» и выбрав процесс по умолчанию.

Тем не менее, я подозреваю, что это будет менее страшно, чем командная строка для некоторых моих разработчиков.

Однако я продолжаю искать лучшее решение.

person Hampton Smith    schedule 25.09.2012
comment
Я не мог заставить это работать в Netbeans 7.0.1. Если коллега вытаскивал проект из CVS, у него не было новых меню. - person David I.; 09.02.2013

В IntelliJ IDEA вы можете запустить любую цель ant или maven из списка (и даже назначить ей нажатие клавиши). Я почти уверен, что в Netbeans есть что-то подобное. Таким образом, вместо использования специфичных для netbeans материалов вы можете сделать это как конфигурации ant/maven. Конечно, эти цели не должны требовать каких-либо параметров/настройки/и т.д. Вы можете отделить локальные настройки в отдельный файл (включенный в основной скрипт ant или в settings.xml или OS env или что-то еще).

person kan    schedule 18.09.2012
comment
Спасибо за ответ! Это согласуется с тем, что я пытаюсь сделать. Цели Maven уже существуют. Я пытаюсь сказать, что запуск этих целей должен быть нулевой конфигурацией, действием «укажи и щелкни» в нашей официальной среде IDE. У нас высокая текучесть кадров, и многие из приходящих людей — старшекурсники, у которых нет опыта работы с git/Maven или с настройкой их IDE, кроме нажатия F6 для запуска. - person Hampton Smith; 19.09.2012