НАВИГАЦИЯ

SonarQube и Unity, краткое пособие.

cetekot
Захотелось прикрутить SonarQube к небольшому проекту на Unity. Сходу толковой инструкции не нашёл, поэтому пришлось разбираться самому. Для тех, у кого такая задача возникла, напишу простую инструкцию. Сам SonarQube версии 7.81 у меня живёт давно. Если у вас тоже, то шаги 1-3 можно пропустить.

Шаг 1. SonarQube требуется наличие Java, подойдёт любая более-менее актуальная версия, начиная с Java 11. Можно использовать как Оракловую Java SE, так и OpenJDK. Java от Oracle потребует установки, OpenJDK достаточно просто распаковать в любое удобное место. В обоих случаях необходимо создать переменные окружения ( Environment Variables ) JAVA_HOME и, возможно, JDK_HOME.

Шаг 2. SonarQube требуется хотя бы одна база данных из перечисленных: H2, MySQL, Oracle, PostgreSQL, Microsoft SQL Server. Начиная с версии SonarQube 7.9 была убрана поддержка MySQL. Если что-то из перечисленных баз есть, в ней надо создать схему и, для параноиков, пользователя/пароль с которым SonarQube будет ходить в базу. В случае отдельного юзера, на свою базу ему необходимы права DLL, т.е. Create, Drop, Alter и т.д.

Шаг 3. Если SonarQube у вас нет, то по ссылке на странице продукта доступна последняя версия и, внизу, остальные более старые. Скачиваете, распаковываете куда удобнее ( далее SONAR_HOME ) и в файле <SONAR_HOME/conf/sonar.properties> устанавливаете пусть к базе из шага 2. Например,
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonaruser
sonar.jdbc.password=supersecretpassword

Если на этом шаге SonarQube запускается и доступен по адресу http://localhost:9000/, то можно себя поздравить с удачным конфигурированием.

Шаг 4. Для анализа C# потребуется SonarScanner for MSBuild, которым любезно поделится сам SonarQube. На данный момент нужна версия для .NET Framework 4.6+. Скачивается, распаковывается и устанавливается в любое удобное место. В распакованном SonarScanner в файле SonarQube.Analysis.xml необходимо убрать комментарии со следующих строк:
<Property Name="sonar.host.url">http://localhost:9000</Property>;
<Property Name="sonar.login"></Property>
<Property Name="sonar.password"></Property>

Логин и пароль по умолчанию не требуются.

Шаг 5. Самый тонкий шаг из всех: найти правильный MSBuild для пересборки проекта. У меня подошёл только тот, что идёт вместе с Visual Studio 2019 Community. MSBuild от Visual Studio Code и от .NET Framework - не подошли. Если VS 2019 Community у вас нет, оно доступно бесплатно с сайта Microsoft.

Шаг 6. В корне Unity проекта создаёте файл sonar.cmd следующего содержания:
<Path_to_SonarScannerForMsBuild>\SonarScanner.MSBuild.exe begin /k:"<Project_Name_In_Sonar>"
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" <your_solution_name>.sln /t:Rebuild
<Path_to_SonarScannerForMsBuild>\SonarScanner.MSBuild.exe end

<Path_to_SonarScannerForMsBuild> заменяются на путь, где хранится SonarScanner for MSBuild.
<Project_Name_In_Sonar> - уникальное имя проекта в Sonar
<your_solution_name> - имя решения ( solution ) в корне проекта Unity
Если путь к Visual Studio другой, вторую строчку файла необходимо поправить соответственно.

Если никаких ошибок в консоли не было, то проект с именем <Project_Name_In_Sonar> должен появиться по адресу http://localhost:9000/projects?sort=-analysis_date

________
1На более новую версию не перехожу, т.к. с 7.9 убрали поддержку MySQL, а ставить ещё какую-то базу не хочу.
Вконтакте
Одноклассники
Google+
Back to news
ПОСЛЕДНИЕ СТАТЬИ
Мохнатыми лапами по дорогам Испании.
Таррагона.

Захотелось в этот отпуск поехать в Испанию. Стыдно сказать, но прожив там больше года, за пределы Барселоны выезжал всего пару раз. Надо было срочно исправлять это досадное недоразумение. Для разнообразия, решил поехать поездом. Последний раз я на нём путешествовал в Москву, году этак в 1986-м.

<Читать дальше>
 
Горные коты, драконы и альпийские рога.
Если Вена это кофе, Испания - море, то Швейцария это горы. Стало быть, надо на них залезть. Иначе зачем было вообще их городить?

<Читать дальше>
 
Вена в сентябре.
Долгое время, осматривая карту Европы, мой взгляд задерживался на Вене. Откуда-то из глубин памяти всплывала цепочка «Вена, осень, кофе».
<Читать дальше>
 
Бездомные коты на дорогах Европы.
День первый.

Уезжал я во втором часу ночи на понедельник. Ездить в такое время по Лондону одно удовольствие: машин нет, людей нет, никакой общественный транспорт уже не ходит - красота!
<Читать дальше>
 
Article archive


Сайт искользует cetekot's portal engine v.0.14