Не делайте сложные вещи как ловушку перед фиксацией! Когда пользователь выполняет фиксацию, управление не возвращается к пользователю до тех пор, пока не завершится ловушка предварительной фиксации. Поскольку Sonar должен скомпилировать ваш код, вашим пользователям придется ждать при каждом коммите следующее:
- Проверка кода
- Компиляция кода
- Запуск всех тестов и проверок, которые выполняет Sonar
- Ожидание, пока Sonar завершит подготовку отчетов и обновит свою базу данных
Сколько времени это займет? 10 минут? 20 минут? 5 минут? Давайте предположим, что ваш код небольшой или ваш компилятор очень быстрый, поэтому это займет всего 4 минуты. Ваши пользователи хотят ждать 4 минуты каждый раз, когда они выполняют коммит, чтобы снова начать свою работу?
Вместо этого получите сервер непрерывной сборки, такой как Jenkins . Jenkins быстрый и простой в настройке. Это простой * .war файл. Вы просто запускаете:
$ java -jar jenkins.war
И вы уже работаете. Как только Хадсон встает, вы определяете «работу». Просто введите необходимую информацию и сохраните. Каждый раз, когда кто-то делает коммит в Subversion, Хадсон будет строить в фоновом режиме.
Здесь все самое интересное - это десятки (и, может быть, сотни) сторонних плагинов, которые могут расширить Jenkins. Например, есть плагин Sonar, который будет запускать ваши задачи Sonar, обновлять вашу базу данных и создавать хорошие отчеты.
Если возникнут проблемы, Дженкинс отправит электронное письмо ответственному лицу и всей команде разработчиков. (Плагины позволяют Дженкинсу вести мгновенные сообщения, чирикать и даже менять светофор с зеленого на красный). Эта немедленная обратная связь и общедоступные знания помогут вашим разработчикам выполнить свои собственные тесты перед выполнением фиксации.