
Plataforma de calidad de código y análisis estático con quality gates, análisis multilingüe y reglas centradas en la seguridad para detectar vulnerabilidades y problemas de mantenibilidad en flujos de trabajo de CI/CD.
SonarQube ofrece la capacidad de no solo mostrar el estado de salud de una aplicación, sino también de resaltar los problemas recientemente introducidos. Con un Quality Gate configurado, puedes lograr Clean Code y, por lo tanto, mejorar la calidad del código de forma sistemática.
Para preguntas de soporte («¿Cómo hago...?», «Me aparece este error, ¿por qué?», ...), lee primero la documentación y después dirígete a la Comunidad de SonarSource. ¡Es probable que la respuesta a tu pregunta ya haya sido respondida! 🤓
Ten en cuenta que este foro es una comunidad, por lo que se esperan las cortesías habituales («Hola», «Gracias», ...). Y si no obtienes respuesta a tu hilo, deberías esperar al menos tres días antes de volver a publicar. No hay operadores en espera. 😄
Si deseas ver una nueva funcionalidad o informar de un error, crea un nuevo hilo en nuestro foro.
Ten en cuenta que no estamos buscando activamente contribuciones de funcionalidades. La verdad es que es extremadamente difícil para alguien externo a SonarSource cumplir con nuestra hoja de ruta y expectativas. Por lo tanto, normalmente solo aceptamos cambios cosméticos menores y correcciones de erratas.
Con esto en mente, si deseas enviar una contribución de código, crea un pull request para este repositorio. Explica tus motivaciones para contribuir con este cambio: qué problema intentas resolver, qué mejora intentas lograr.
Asegúrate de seguir nuestro estilo de código y de que todas las pruebas pasen (la compilación de Travis se ejecuta para cada pull request).
¿Deseas contribuir a los productos de SonarSource? Buscamos personas inteligentes, apasionadas y con talento que nos ayuden a crear soluciones de calidad de código de clase mundial. ¡Echa un vistazo a nuestras ofertas de empleo actuales aquí!
Para compilar las fuentes localmente, sigue estas instrucciones.
-x test al comando de Gradle (útil si solo quieres compilar sin ejecutar pruebas)Ejecuta desde el directorio base del proyecto:
./gradlew build
El archivo de distribución zip se genera en sonar-application/build/distributions/. Descomprímelo e inicia el servidor ejecutando:
# on Linux
bin/linux-x86-64/sonar.sh start
# or on MacOS
bin/macosx-universal-64/sonar.sh start
# or on Windows
bin\windows-x86-64\StartSonar.bat
Si el proyecto nunca se ha compilado, compílalo como de costumbre (consulta la sección anterior) o usa el comando más rápido:
./gradlew ide
Luego abre el archivo raíz build.gradle como proyecto en IntelliJ o Eclipse.
| ./gradlew command | Description |
|---|---|
dependencies | lista las dependencias |
spotlessApply | corrige las cabeceras de los archivos aplicando HEADER |
wrapper --gradle-version 5.2.1 | actualiza el wrapper |
La interfaz de usuario de SonarQube (o webapp, como la llamamos) se encuentra en otro repositorio: sonarqube-webapp.
Al compilar el repositorio sonarqube, la webapp se descarga automáticamente de Maven Central como dependencia, lo que facilita contribuir con cambios de backend sin tener que preocuparte por la webapp.
Pero si tu contribución también contiene cambios en la interfaz de usuario, debes clonar el repositorio sonarqube-webapp, hacer tus cambios allí, compilarlo localmente y luego compilar el repositorio sonarqube usando la variable de entorno WEBAPP_BUILD_PATH para apuntar a tu compilación personalizada de la interfaz.
Aquí tienes un ejemplo de cómo hacerlo:
cd /path/to/sonarqube-webapp/server/sonar-web
# do your changes
# install dependencies, only needed the first time
yarn
# build the webapp
yarn build
cd /path/to/sonarqube
# build the sonarqube repository using the custom build of the webapp
WEBAPP_BUILD_PATH=/path/to/sonarqube-webapp/server/sonar-web/build/webapp ./gradlew build
También puedes apuntar a una versión específica de la webapp actualizando la propiedad webappVersion en el archivo ./gradle.properties y luego compilando el repositorio sonarqube con normalidad.
Históricamente, nuestras traducciones se almacenaban en sonar-core/src/main/resources/org/sonar/l10n/core.properties, pero este archivo ahora está obsoleto y ya no se actualiza.
Las traducciones predeterminadas (en inglés) ahora se definen en el repositorio de la webapp, aquí:
https://github.com/SonarSource/sonarqube-webapp/blob/master/libs/sq-server-shared/src/l10n/default.ts
El formato ha cambiado, pero aún puedes obtenerlo en formato de archivo .properties ejecutando el siguiente comando:
cd /path/to/sonarqube-webapp/server/sonar-web
# install dependencies, only needed the first time
yarn
# generate a backward compatible .properties file with all the translation keys
yarn generate-translation-keys
Ten en cuenta que contribuir con extensiones para traducciones a otros idiomas sigue funcionando igual que antes. Solo ha cambiado la fuente de verdad de las traducciones predeterminadas.
Copyright (C) SonarSource Sàrl.
Licenciado bajo la GNU Lesser General Public License, Version 3.0.