<h2>¿Qué incluye JetBrains Qodana Ultimate?</h2>
<p style="margin-top: 0px; margin-bottom: 0px;"><strong>Análisis de nivel IDE</strong> – Ejecuta las inspecciones del IDE de JetBrains dentro de los flujos de CI/CD.<br /><strong>Linters para todos los lenguajes</strong> – Añade análisis para Go, JS/TS, PHP, Ruby y Rust.<br /><strong>Controles de calidad</strong> – Provoca el fallo de las compilaciones y registra la deuda técnica existente.<br /><strong>Corrección rápida</strong> – Sugiere y aplica correcciones automáticas al código.<br /><strong>Importante</strong> – El análisis de taint y el escaneo de vulnerabilidades requieren la versión Ultimate Plus.<br /><strong>Capacidad básica</strong> – Diez linters completos que cubren JVM, JS, Go y PHP.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿Cuáles son las principales ventajas de JetBrains Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">JetBrains Qodana Ultimate es una plataforma de análisis estático que ejecuta las mismas inspecciones que IntelliJ IDEA, PyCharm y otros IDE de JetBrains directamente dentro de tu canalización de CI/CD. El nivel Ultimate añade todos los linters de producción y las funciones para equipos que la edición gratuita Community no incluye.<br /><br /><strong>Inspecciones coherentes</strong> – Las mismas reglas en el IDE y en CI.<br /><strong>Automatización de correcciones rápidas</strong> – Aplica las correcciones sugeridas sin necesidad de reescribir manualmente el código.<br /><strong>Control de la línea de base</strong> – Separa los nuevos problemas de la deuda técnica heredada.<br /><strong>Análisis autohospedado</strong> – El código se analiza en tus propios ejecutores de CI.<br /><strong>Amplia compatibilidad con CI</strong> – Funciona con GitHub, GitLab, Jenkins y TeamCity.<br /><strong>Integración con el editor</strong> – Revisa los resultados dentro de IntelliJ, Rider y VS Code.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿Qué hace JetBrains Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">JetBrains Qodana Ultimate ejecuta las inspecciones de código estático de los IDE de JetBrains dentro de tu pipeline de CI/CD, de modo que las mismas comprobaciones que ven los desarrolladores en IntelliJ IDEA o PyCharm también se ejecutan en cada push o pull request. La licencia Ultimate activa los linters completos de producción —incluidos Qodana para JS, Go, PHP, Ruby y Rust— que la edición Community gratuita no puede ejecutar. También añade Quick-Fix, que aplica automáticamente las correcciones de código sugeridas en lugar de limitarse a señalarlas. Una línea de base te permite aceptar los problemas existentes una vez y, a continuación, rechazar las compilaciones únicamente por los problemas recién introducidos. Esto resulta muy práctico para aplicar un estándar de calidad coherente en todo el equipo, en lugar de depender de la configuración local de cada desarrollador.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿En qué se diferencia Qodana Ultimate de la edición Community gratuita?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">La edición Community solo ejecuta los linters de la edición Community y se limita a lenguajes como Java, Kotlin, Groovy, Python, C, C++, C# y VB.NET. La edición Ultimate añade los linters de pago para Go, JavaScript, TypeScript, PHP, Ruby y Rust, además de incluir funciones que el nivel gratuito omite: correcciones automáticas con Quick-Fix, cobertura de código e inspecciones de Docker y Kubernetes. Además, la versión Ultimate conserva datos detallados de análisis histórico durante 180 días en lugar de 30 y permite un número ilimitado de equipos en Qodana Cloud, en lugar de uno solo. Si tus repositorios se ciñen a los lenguajes que ya cubre la edición Community, la actualización te ofrece principalmente la función Quick-Fix, la cobertura de código y un historial de informes más extenso. Para bases de código poliglotas que incluyan Go, PHP o JavaScript front-end, Ultimate es el nivel más básico que permite analizarlas.</p>
<table style="width: 100%; border-collapse: collapse; background-color: #efefef; margin-top: 15px; margin-bottom: 15px; font-size: 14px; line-height: 1.35;">
<tbody>
<tr><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: left; font-weight: bold; background-color: #dedede;">Características</th><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: center; font-weight: bold; background-color: #dedede;">Community</th><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: center; font-weight: bold; background-color: #dedede;">Ultimate</th><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: center; font-weight: bold; background-color: #dedede;">Ultimate Plus</th></tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Linters para Go, JS, PHP, Ruby y Rust</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Correcciones automáticas de Quick-Fix</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Cobertura de código</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Inspecciones de Docker y Kubernetes</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Control de calidad y línea de base</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Análisis de taint (OWASP)</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Comprobador de vulnerabilidades</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Auditoría de licencias</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Inicio de sesión único</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Almacenamiento de datos históricos</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;">30 días</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;">180 días</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;">Ilimitado</td>
</tr>
</tbody>
</table>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿Incluye Qodana Ultimate análisis de seguridad y de vulnerabilidades de dependencias?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">No: las funciones centradas en la seguridad están reservadas para Ultimate Plus, no para Ultimate. El análisis de contaminación para vulnerabilidades de tipo OWASP, el verificador de vulnerabilidades en las dependencias que señala los CVE conocidos en tus bibliotecas y la auditoría de licencias de terceros requieren la licencia Ultimate Plus. La versión Ultimate se centra en las inspecciones de calidad del código, Quick-Fix y los controles de calidad, más que en el análisis estático de seguridad (SAST) o el análisis de la composición del software. El inicio de sesión único (Single Sign-On) y la API de Qodana Cloud también son exclusivos de Ultimate Plus. Los equipos que necesiten que Qodana detecte fallos de inyección o dependencias vulnerables deben optar por Ultimate Plus desde el principio, ya que la versión Ultimate no mostrará esos hallazgos.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿Qué lenguajes y sistemas de integración continua (CI) admite Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Qodana Ultimate ofrece diez linters de producción que cubren la JVM (Java, Kotlin, Groovy), Python, PHP, JavaScript y TypeScript, Go, .NET (C#, VB.NET), C y C++, Android, Ruby y Rust. Cada linter se presenta como una imagen de Docker para Linux, y varios de ellos también pueden ejecutarse en modo nativo sin necesidad de Docker. En cuanto a la integración continua (CI), se integra con GitHub Actions, GitLab CI/CD, Jenkins y TeamCity, y cualquier plataforma capaz de ejecutar una imagen de Docker puede ejecutar Qodana. Los resultados también se pueden abrir directamente en IntelliJ IDEA, PhpStorm, Rider y VS Code, de modo que los problemas se corrigen en el editor. Esa versatilidad permite que una única configuración de Qodana sirva a equipos que trabajan con pilas tecnológicas muy diferentes.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿Qué deben comprobar los equipos antes de elegir Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Comprueba cómo se calculan las licencias de Qodana: el coste se basa en el número de colaboradores activos, definidos como aquellas personas que han realizado commits en tus proyectos de Qodana Cloud en los últimos 90 días, con un mínimo de tres. Confirma si realmente necesitas el análisis de seguridad, ya que el análisis de taint, el verificador de vulnerabilidades y la auditoría de licencias no están incluidos en la versión Ultimate, sino que solo aparecen en Ultimate Plus. Ten en cuenta que todos los análisis se ejecutan dentro de tu propio entorno de CI/CD: JetBrains no realiza análisis en sus servidores, y Qodana Cloud solo almacena los informes resultantes. Los proyectos de código abierto pueden utilizar Qodana sin coste alguno, lo que puede alterar el cálculo en el caso de trabajos mixtos, tanto públicos como privados. Hay disponible una versión de prueba de las ediciones de pago si quieres probar los linters con tu código fuente antes de comprometerte.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Preguntas frecuentes sobre JetBrains Qodana Ultimate</h3>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿Qué sube Qodana Ultimate a Qodana Cloud?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Qodana reenvía a Qodana Cloud los informes de análisis en formato SARIF, junto con los datos de colaboradores activos que se utilizan para el recuento de licencias. El análisis del código en sí se lleva a cabo en tus ejecutores de CI/CD, por lo que tu código fuente no se analiza en la infraestructura de JetBrains. La configuración genera una clave pública que se almacena en tu repositorio y un token de proyecto para subir los informes.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">¿Puede Qodana Ultimate analizar un monorepo con varios lenguajes?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Sí: Qodana es compatible con los monorepos, y puedes ejecutar varios linters en un mismo proyecto, como Qodana para JVM y Qodana para JS a la vez. Dado que cada linter es una imagen Docker de Linux independiente, puedes seleccionar los que se correspondan con los lenguajes del repositorio. La compatibilidad con monorepos está disponible en todas las ediciones, incluida la Community.</p>
<p style="margin-top: 0px; margin-bottom: 0px;"> </p>