Могу ли я динамически рассчитать технический долг?
У меня есть большое количество отдельных, несвязанных программ Java в папке "Программы", и мне бы очень хотелось, чтобы у вас была возможность автоматически рассчитывать баллы технического долга для каждой отдельной программы. Я понимаю, что SonarQube может позволить вам сделать это (вроде) с помощью Sonar-Runner, однако мне очень хотелось бы сделать это динамически, поэтому я могу script анализировать и записывать технические долговые баллы всех программ в папке "Программы" в csv.
Я совершенно охотно и счастлив попробовать любое другое техническое программное обеспечение для долговых обязательств (или качество в этом отношении), если он сможет это сделать для меня. Я просто очень ценю любой вклад или мысли о том, возможно ли это даже возможно?
Ответы
Ответ 1
Да, вы можете, Sonar - инструмент анализа кода и имеет плагины, которые могут даже оценить технический долг в человеческих часах или долларах. На самом деле легко настраивать и запускать, вы просто загружаете его, извлекаете и запускаете (поставляется с внутренней БД, поэтому никаких дополнительных зависимостей от конфигураций не требуется). Затем, если вы используете maven, вы добавляете это в свой pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
и запустите:
maven sonar:sonar
Сонар покажет вам всякую полезную информацию о вашем коде, включая технический долг.
------ Обновление 1 ------
Если у вас несколько проектов (при условии, что они являются maven), вы можете сделать их всех дочерних элементов одного родительского проекта и запустить mvn sonar:sonar
у родителя, он проанализирует все ваши дети. Вот пример нескольких проектов.
Ответ 2
Плагин Eclipse Metrics может приблизить вас к тому, что вы ищете. Это даст вам проверку работоспособности ваших проектов, сообщив о различных типах сложности (связь, цикличность, сплоченность, длина методов и т.д.).
На странице:
Этот плагин Eclipse вычисляет различные показатели для вашего кода во время циклов сборки и предупреждает вас, используя представление "Проблемы" о "нарушениях диапазона" для каждой метрики. Это позволяет вам постоянно следить за состоянием вашего кода. Вы также можете экспортировать метрики в HTML для общедоступного отображения или в формат CSV или XML для дальнейшего анализа. Этот экспорт может быть выполнен из Eclipse или с помощью задачи Ant.
http://eclipse-metrics.sourceforge.net/
Ответ 3
Эти ответы были великолепны, но не совсем то, что я искал. Мне удалось создать свою собственную работу:
-
Когда я создаю java-проекты, у меня есть класс java, который автоматически записывает файл sonar-properties.properties в каждый отдельный проект.
-
Затем я запускаю сервер сонара (через командную строку)
-
Затем я написал script, который сверлит по каталогам, ища файлы sonar-properties.properties. Когда, если найдет один, он запускает сонара.
Примечание. В файле свойств есть ключ проекта, который соответствует проекту (поэтому каждый проект, который я пытаюсь проанализировать, имеет собственный ключ проекта), и поэтому я могу просто перейти на localhost и увидеть ссылку для каждого свойства файл, который я создал.