Sonarqube

Sonarqube

SonarQube es una plataforma para evaluar código fuente. Es software libre y usa diversas herramientas de análisis estático de código fuente como Checkstyle, PMD o FindBugs para obtener métricas que pueden ayudar a mejorar la calidad del código de un programa. Dicha herramienta es muy fácilmente se puede integrar con Azure o Jenkins.

Requisitos

La herramienta Docker nos ha facilitado la configuración de los sistema, usando una imagen de docker fácilmente podemos comenzar a trabajar pero para esto es necesario tener unos pre requisitos.

  • Windows 10 versión Professional o Enterprise.
  • Updates críticos para Windows Containers.
  • Virtualización activada en nuestro equipo.

Después de haber configurado nuestro ambiente de trabajo podríamos crear una imagen, para esto nos ayudaremos con la documentación oficial de Docker SonarQube https://hub.docker.com/_/sonarqube/

Configuración

Como mencionamos anteriormente para poder agilizar la configuración del ambiente de trabajo para el sonarqube, utilizaremos una imagen de Docker. Con dicha imagen podremos tener acceso a la aplicación y podremos realizar todos los análisis del mismo modo que el tradicional. Para para la creación de la imagen de Docker • Tener el Docker en modo contenedor Linux. • Abrir una ventana de comando ya sea powershell o cmd. Tener en cuenta que debe ser en modo administrador. • Ejecutar el siguiente comando

 docker run -d --name sonarqube -p 9000:9000 sonarqube

• Correr la imagen de Docker. • En un navegador ir a la aplicación con la siguiente URL. http://localhost:9000

sonarqube 1

Análisis de un proyecto

Existe dos métodos para poder realizar la inspección de código de un proyecto. • Utilizando el terminal del IDE • Con una herramienta de CI/CD como Azure o Jenkins.

Pasos para realizar un análisis: • Crear un nuevo proyecto en sonarqube

sonarqube create new  project


• Generar un nuevo token.

sonarqube create new token

sonarqube create new token 2

• Realizar click en continue • Seleccionar el tipo de lenguaje que se encuentra el proyecto. Para este ejemplo utilizaremos un proyecto Java con Maven.

sonarqube  continue

Nos aparecerá un script con el cual podremos realizar la inspección. NOTA: Este script lo necesitaremos tanto para la ejecución en el terminal del IDE como en el Azure.

Ejecución por el IDE

sonarqube run

Se ejecuta el comando desde el terminal o por el Maven.

Ejecución por el Azure.

  • Se debe tener una máquina virtual en el azure con sonarqube instalado.
  • Crear un proyecto en el servidor de sonarqube.
  • Seguir los siguientes pasos para la creación del pipeline

1.Crear un nuevo pipeline

Azure pipeline

2.Seleccionar Other Git

3.Seleccionar un template. En nuestro caso seleccionaremos Maven

Maven

4.Agregaremos al job la tarea“Prepare analysis on sonarQube”. Hay que tener en cuenta que se debe tener laextensión de sonarqube instalada en el proyecto.

template

NOTA: Se debe crear un nuevo servicio de conexión. Dicho servicio debe tener los datos del servidor de SonarQube, tener en cuenta los siguientes datos:

- Server URL.
- Token.
- Nombre del servicio.

Maven

5.Se debe validar que en el radio button de “Integrate with Maven ir Grandle” debe estar chequeado.

6.En la tarea de Maven, se debe colocar el código que genera el SonarQube. Pero se tiene que quitar el mvn y los Backslash \

7.En la sección de Code Analysis seleccionar la opción “Run SonarQube or SonarCloud analysis”

Funcionalidades del SonarQube

A continuación se mostrara un ejemplo de un análisis de un proyecto usando sonarQube

SonarQube

Bugs & Vulnerabilities

Los errores o Vulnerabilidades son pequeñas fracciones de código que aun no se encuentran dañadas, pero representan unas futuras fallas.

SonarQube bugs

SonarQube bugs 2

Code Smell

Un problema relacionado con la mantenibilidad en el código. Dejarlo como está significa que, en el mejor de los casos, los programadores tendrán más dificultades de las que deberían hacer cambios en el código. En el peor de los casos, estarán tan confundidos por el estado del código que introducirán errores adicionales a medida que realicen cambios.

SonarQube code smell

SonarQube code smell 2

Duplications

Como su nombre lo indica, en esta sección se muestra el código duplicado que se encuentra en el proyecto.

SonarQube duplications

Size

Muestra el tamaño del proyecto, aquí se desglosa el mismo y se puede visualizar la cantidad de líneas de código, funciones, archivos y clases existen.

SonarQube size

Resumen

  • Como se ha mencionado anteriormente, la instalación de SonarQube es muy sencilla usando Docker.
  • Ayuda a crear un producto mas robusto.
  • Hace que el codifico sea de fácil mantención.
  • Fácil integración con Azure.

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

Descarga nuestro Clever UI KIT 👇

Gracias. Te será enviado un mail confirmando la inscripción
¡Ups! Algo salió mal al enviar el formulario.
Gracias. Te será enviado un mail confirmando la inscripción
¡Ups! Algo salió mal al enviar el formulario.
Gracias. Te será enviado un mail confirmando la inscripción
¡Ups! Algo salió mal al enviar el formulario.

Crea tu propio manual de marca con esta plantilla gratuita.
¡Organiza tus activos de diseño de forma más eficiente!