[Перевод] Управление настройками ReSharper в команде
Сегодня я хочу рассказать о том, как можно централизованно управлять настройками ReSharper на уровне команды разработчиков. Под настройками я понимаю настройки форматтера, Live Templates и настройки ReSharper. Они могут быть экспортированы и упакованы в так называемые Declarative Extensions.
На данный момент все плагины для ReSharper представляют собой стандартные NuGet пакеты. Это позволяет распространять их через официальный NuGet feed от JetBrains или публиковать их в частном закрытом NuGet сервере внутри компании.
Экспорт настроек
Для экспорта настроек и Live Templates перейдём в меню RESHARPER→Manage Options.
В данном диалоге нужно выбрать уровень (Layer) настроек, который мы хотим экспортировать.
Нажмём кнопку «Import/Export settings».
В окне «Export To File» отметим узлы «Code Style» и «LiveTemplates». Затем нужно указать директорию и имя DotSettings файла, в который будут записаны экспортируемые настройки.
Подготовка NuGet пакета
Как только настройки экспортированы, можно приступать к созданию NuGet пакета. Необходимо описать .nuspec файл. Для ReSharper 8.2 он будет выглядеть следующим образом:
YourCompany.Settings
1.0.0
TeamSettings
Your name
Your Company
http://your-company.com
false
Team settings and live templates for ReSharper
Copyright © Your Company
settings
В случае с ReSharper 9.1 .nuspec файл будет немного отличаться. Узел Dependencies должен указывать версию «Wave», а не ReSharper:
Так же нужно будет изменить target:
Где «YourCompany.Settings» это идентификатор NuGet пакета.
Теперь можно собрать пакет, выполнив команду:
nuget.exe pack nuspec-file-name.nuspec
Если мы выполнили предыдущие шаги без ошибок, то рядом с nuspec файлом будет создан пакет «YourCompany.Settings.1.0.0.nupkg».
Публикация NuGet пакета
Как упоминалось выше, ReSharper может использовать следующие источники NuGet пакетов:
- Официальный feed от JetBrains
- Любой сторонний NuGet сервер (например ProGet)
- Артефакты TeamCity
- Локальная или сетевая папка
Публикация пакета на NuGet сервере практически ничем не отличается от публикации на nuget.org.
В данной статье для простоты, в качестве NuGet feed, я буду использовать папку в файловой системе. Данная папка должна быть доступна с компьютера каждого программиста в команде. Например, это может быть общий exchange folder на сетевом диске.
Использование кастомного NuGet feed
После того, как пакет с расширением опубликован, нам нужно зарегистрировать новый источник расширений. Для этого перейдём в RESHARPER → Options…→ Environment → Extension Manager.
Нажмём «добавить» (Add), укажем имя в поле «Name» и путь до Артефактов, NuGet сервера или директории в поле «Source».
Установка расширения
Для установки расширения необходимо перейти в меню RESHARPER → Extension Manager.
В поиске нужно найти наш пакет и нажать Install.
Проверим, что ReSharper обнаружил новые настройки. Откроем диалог Manage Options и убедимся, что новый слой настроек отображается на экране.
Теперь каждый член команды может использовать актуальную версию настроек. В случае изменения или обновления настроек достаточно лишь опубликовать новую версию плагина, и ReSharper автоматически найдёт обновление и проинформирует разработчика.