Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:sourcecodeanalyzer:sonarqube

Fábrica - Análisis de Código Fuente: SonarQube®

SonarQube® es una herramienta de revisión automática de código para detectar errores, vulnerabilidades y olores de código en su código. Puede integrarse con su flujo de trabajo existente para permitir la inspección continua del código en las ramas de su proyecto y solicitudes de extracción.1)

Procesos Previos

Antes de realizar un analisis de código fuente centralizado deben realizarse los siguientes procesos.

Usuario SonarQube

Es el usuario con el cuál se generarán los análisis de código de fuente de los proyectos. Este usuario es generado por equipo de desarrollo los cuales se listan a continuación:

  • Java BPP
  • Java Situ
  • Java Otros
  • .Net Alissta

Cada usuario es representado por un hash (token) el cuál es identificado como login al momento de ejecutar Comandos de ejecución de proyectos SonarQube

Nota:El hash generado por cada usuario debe utilizarse sólo con los proyectos bajo la gestión del equipo. Si se pierde el hash se debe solicitar al adminsitrador uno nuevo.

Solicitud de creación de proyecto SonarQube

Este es el proceso inicial que se debe realizar para implementar el análisis de código fuente centralizado y consiste en la creación del proyecto en el servidor SonarQube. Esta solicitud la debe realizar el lider de equipo al administrador del servidor SonarQube. Solo basta con enviar un correo donde se indique el nombre del proyecto el cual debe ser el mismo del proyecto de código fuente respetando mayusculas y minusculas. El administrador responderá con el Comando de ejecución del proyecto SonarQube el cual debera ser utilizado para los procesos de analsis.

Comando de ejecución del proyecto SonarQube

Es el comando que se genera al crear un proyecto de análisis de código fuente en el servidor SonarQube la estrucutra del comando es la siguiente según la tecnología y lenguaje de desarrollo y será entregada al equipo de desarrollo por medio del administrador:

Java: Maven

mvn sonar:sonar \
  -Dsonar.projectKey=[Nombre del Proyecto] \
  -Dsonar.host.url=[IP y Puerto del Servidor SonarQube] \
  -Dsonar.login=[Token asociado al proyecto SonarQube]

Ejemplo:

mvn sonar:sonar \
  -Dsonar.projectKey=MiProyecto \
  -Dsonar.host.url=http://10.1.40.171:9000 \
  -Dsonar.login=1234567890123456789012345678901234567890

Java: Gradle

Instale el plugin en las dependencias

plugins {
  id "org.sonarqube" version "3.0"
}

Ejecute el comando

./gradlew sonarqube \
  -Dsonar.projectKey=MiProyecto \
  -Dsonar.host.url=http://10.1.40.171:9000 \
  -Dsonar.login=1234567890123456789012345678901234567890

.Net: Core

Scanner .NET Core Global Tool

#As a prerequisite you need to have the sonarscanner tool installed globally using the following command:
dotnet tool install --global dotnet-sonarscanner
#Make sure dotnet tools folder is in your path. See dotnet global tools documentation for more information.

Execute the Scanner from your computer

#Running a SonarQube analysis is straighforward. You just need to execute the following commands at the root of your solution.
dotnet sonarscanner begin /k:"MiProyecto" /d:sonar.host.url="http://10.1.40.171:9000"  /d:sonar.login="1234567890123456789012345678901234567890"
dotnet build
dotnet sonarscanner end /d:sonar.login="1234567890123456789012345678901234567890"

.Net: Framework

Download and unzip the Scanner for .NET and add the executable's directory to the %PATH% environment variable Execute the Scanner from your computer

#Running a SonarQube analysis is straighforward. You just need to execute the following commands at the root of your solution.
SonarScanner.MSBuild.exe begin /k:"MiProyecto" /d:sonar.host.url="http://10.1.40.171:9000" /d:sonar.login="1234567890123456789012345678901234567890"
MsBuild.exe /t:Rebuild
SonarScanner.MSBuild.exe end /d:sonar.login="1234567890123456789012345678901234567890"

El administrador o responsable de crear el proyecto responderá el correo con este comando el cuál deberá utilizarse al momento de lanzar un análisis centralizado.

Integrar SonarQube/SonarLint en los proyectos de la fábrica

Consideraciones previas

  • En el alcance inicial solo se soporta el lenguaje java
  • Solo se soportan los gestores de dependencias Maven2), Gradle3)
  • Antes de subir un análisis al servidor SonarQube debe existir el proyecto. Este debe ser solicitado al administrador carlos.torres.

Nota

La configuración de la integración SonarQube/SonarLint se realizará en entorno window 10 con maven 3.x

Configuración Global del repositorio

Lo primero que se debe hacer es ir a las configuraciones globales del gestor de dependencias en el usuario en sesión del sistema operativo. En el caso de window esta ruta por lo general se encuentra en C:\Users\Usuario\.m2\wrapper\dists\apache-maven[Versión Maven instalada]\[directorio hash del empequetado]\apache-maven-[Versión maven instalada]\conf\settings.xml. El archivo que debemos ubicar es el archivo settings.xml y en el debemos realziar la siguiente configuración:

Sección pluginGroups

Ubique la sección pluginGroups y copie el siguiente texto como se muestra en el siguiente código de ejemplo

<pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
	<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
  </pluginGroups>
Nota

Si existen más plugins registrado agregue la linea <pluginGroup>org.sonarsource.scanner.maven</pluginGroup> antes del final de la sección </pluginGroups>

Sección profiles

Ubique la sección profiles y al final copie el siguiente perfil como se muestra en el siguiente código de ejemplo

<profile>
  <id>sonar</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
  <!-- Optional URL to server. Default value is http://localhost:9000 -->
    <sonar.host.url>
      http://10.1.40.171:9000
    </sonar.host.url>
  </properties>
</profile>

Para finalizar guarde el archivo4) y con eso ya estará configurado el maven para lanzar análisis en el servidor SonarQube.

←Volver atras

4)
En algunas configuraciones solicitará usuario administrador
ada/howto/sicoferp/factory/sourcecodeanalyzer/sonarqube.txt · Última modificación: 2021/11/25 12:37 por 192.168.177.57