Сегодня я хочу рассказать о том, как можно централизованно управлять настройками 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 он будет выглядеть следующим образом:
<?xml version="1.0"?> <package> <metadata> <id>YourCompany.Settings</id> <version>1.0.0</version> <title>TeamSettings</title> <authors>Your name</authors> <owners>Your Company</owners> <projectUrl>http://your-company.com</projectUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description> Team settings and live templates for ReSharper </description> <copyright>Copyright © Your Company</copyright> <dependencies> <dependency id="ReSharper" version="8.2" /> </dependencies> <releaseNotes> </releaseNotes> <tags>settings</tags> </metadata> <files> <file src="..\Settings\" target="ReSharper\v8.2\settings\" /> </files> </package>
В случае с ReSharper 9.1 .nuspec файл будет немного отличаться. Узел Dependencies должен указывать версию «Wave», а не ReSharper:
<dependencies> <dependency id="Wave" version="[2.0]" /> </dependencies>
Так же нужно будет изменить target:
<files> <file src="..\Settings\" target="DotFiles\Extensions\YourCompany.Settings\settings\" /> </files>
Где «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 автоматически найдёт обновление и проинформирует разработчика.
ссылка на оригинал статьи http://habrahabr.ru/post/262383/
Добавить комментарий