Смотрела недавно видео про улучшение кода и услышала про SonarQube. Рассказывали, как он помогает находить дубликаты кода, маленькие баги и прочие штуки, которые можно улучшать. Меня очень заинтересовал момент с дубликатом кода, поэтому я сразу же пошла гуглить и проверять. В интернете множество инструкций, но мне немного не хватило подробностей, поэтому опишу всё здесь.
- Распаковываете.
- Заходите в папку со своей платформой и тыкаете на StartSonar.
- Там откроется окно терминала и будет куча текста, в конце должно быть:
jvm 1 | 2021.09.25 14:29:12 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
jvm 1 | 2021.09.25 14:29:12 INFO app[][o.s.a.SchedulerImpl] SonarQube is up - У меня это получилось не сразу, потому что путь для джавы не был добавлен в переменные среды. Помогло вот это https://java-course.ru/begin/install-jdk/ + снова пункт 3. Если у вас что-то ещё будет — гуглите.
- Открываем http://localhost:9000 и заходим с логином admin и паролем admin. Мне предложили сразу сменить пароль. Обязательно запомните и логин, и пароль. Пока что больше тут нечего делать.
- Открываем проект, который хотим проанализировать.
- Если кто-то хочет сам разобраться и добавить, то вот что должно быть в итоге: https://github.com/Ladgertha/Savings-Calculator/pull/12/files
- Открываем build.gradle для проекта и смотрим, что в repositories указан mavenCentral(). Если нет — указываем.
- В этом же файле добавляем classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.1"). Проверяйте версию. Возможно, есть уже выше.
- Открываем build.gradle нужного модуля. К плагинам добавляем "org.sonarqube".
- Внутри android {} добавляем sonarqube {
properties {
property("sonar.projectName", "Имя вашего проекта")
property("sonar.projectKey", "Весь путь проекта")
property("sonar.language", "Язык на котором пишете")
property("sonar.sources", "Путь, где содержится ключевой код")
property("sonar.binaries", "Где находится скомпилированные файлы")
property("sonar.sourceEncoding", "Кодировка основных файлов")
property("sonar.login", "Ваш логин на http://localhost:9000 ")
property("sonar.password", "Ваш пароль на http://localhost:9000")
}
}
Как это выглядит у меня:
Есть еще куча всего, что можно найти на сайте с документацией: https://docs.sonarqube.org/latest/.
Синхронизируем и ждём. Всё должно получиться. Если нет — тут я уже не знаю и могу только посоветовать гуглить. Делаем gradle sonar и ждём, когда всё закончится.
Возвращаемся на http://localhost:9000 и тут в проектах должен появиться ваш: http://localhost:9000/projects. Нажимаем и изучаем.
Как это будет выглядеть:
Мне прям понравилось. Достаточно просто и много полезной информации. Интересно будет настроить это с дженкинсом.
Кстати, есть ещё плагин для Android Studio, но у меня не получилось с первого раза, так что я не стала разбираться и решила всё сделать сама без помощников.