2013-03-28 1 views

ответ

1

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

Заключительное выполнение FindBugs не доступно из-под коробки из FindBugs, плагина FindBugs Eclipse, плагина Subversive Eclipse или плагина Subclipse Eclipse. TortoiseSVN поддерживает операции предварительной фиксации, которые могут запускать FindBugs, но он не запускается в Eclipse, и результаты FindBugs должны быть импортированы обратно в плагин FindBugs Eclipse. Некоторые люди, которые используют SVN из командной строки, пишут сценарии оболочки для клиента svn для выполнения проверок перед фиксацией, но это не очень хорошо решает проблему в Eclipse, потому что мы не можем легко контролировать, что использует исполняемый Subversive или Subclipse.

Ближайшее решение по тому, что вы просите: Подводный плагин Eclipse предоставляет extension point для добавления фиксаций фиксации, но это не тривиальная задача для его реализации. Кроме того, если вы хотите интегрировать Eclipse для своих результатов FindBugs, вам, вероятно, понадобится также сделать расширение Subversive плагином Eclipse, чтобы вы могли запускать плагин FindBugs Eclipse (а не непосредственно FindBugs). Ваш профиль показывает, что вам может быть достаточно удобно с Java и Eclipse, чтобы попробовать это (и, возможно, поделиться им с сообществами FindBugs и Subversive), но похоже, что это потребует значительного обслуживания по мере развития инструментов, поэтому я не решаюсь рекомендовать это решение ,

Другие варианты: Зависимости, которые можно рассматривать как действия перед фиксацией, часто лучше всего оставлять для инструмента, предназначенного для управления зависимостями, такими как Maven или Ant (или два миллиона других хороших). Кроме того, ожидание до тех пор, пока не будет выполнено время выполнения/принудительного выполнения проверок такого рода, может быть не лучшей идеей, поскольку это может привести к обнаружению проблем в последний момент, а не раньше в цикле сборки. Кто хочет заблокировать свою последнюю фиксацию дня, когда результаты FindBugs могут быть доступны уже во время компиляции? Если вы используете Ant, я бы предложил добавить в ваш процесс сборки the FindBugs ant task; с небольшим Ant-fu параметр класса мусорной задачи FindBugs может использоваться для ограничения проверок на элементы, которые были изменены из репозитория Subversion.

Если вам действительно не нужна обратная связь с кодом из FindBugs раньше (или у вас уже есть это в вашей сборке), и вам действительно нужен механизм принудительного применения, я бы предложил использовать сервер непрерывной интеграции, такой как Jenkins (jenkins- ci.org), чтобы протестировать весь зарегистрированный код для соответствия. Дженкинс прекрасно сочетается с Subversion, он может обеспечить проверку всех новых файлов, или принудительное принудительное исполнение может быть ограничено подтемой или подсистемой, если это необходимо, оно может сообщить вам, когда происходит нарушение, и имеет дополнительное преимущество не блокировать человека от совершения кода в неудобное время.

+0

Кажется, что это большая работа, чем я думал. На самом деле, на данный момент это довольно много работы, по крайней мере для меня. Это просто считалось удобным методом использования FindBugs, но, вероятно, было бы неудобно реализовать это :) Но большое вам спасибо за ответ, который очень хорош и, скорее всего, будет полезен при решении этой проблемы, если У меня было время попробовать! – devrys