Iconos SCW
héroe bg sin separador
Blog

Exécution d'inspections IntelliJ à partir d'une intégration continue

Alan Richardson
Publicado el 15 de febrero de 2021
Última actualización el 8 de marzo de 2026

Ejecución de inspecciones de IntelliJ desde la integración continua

IntelliJ IDEA ofrece funcionalidad para ayudar a mejorar nuestra codificación, dentro del IDE al escribir código como Intenciones. Las Intenciones pueden ser usadas en lote para inspeccionar el código en busca de patrones a lo largo de la fuente e incluso extenderse al análisis de la Línea de Comandos o añadirse a la Integración Continua. Este post cubre la funcionalidad fuera de la caja de IntelliJ y la expansión con Intenciones personalizadas creadas en Sensei.


Inspecciones de IntelliJ

La función de Inspecciones de IntelliJ impulsa la visualización de muchos de los errores que se informan dinámicamente en el IDE cuando se codifica, por ejemplo

  • detectar las clases abstractas que pueden convertirse en interfaces,
  • identificar los campos de clase redundantes que pueden ser locales,
  • advertencia sobre el uso de métodos obsoletos,
  • etc.


Estas inspecciones resaltan el código que coincide en el IDE como Acciones de Intención que a menudo tienen un QuickFix asociado.


Inspección de opciones de uso de Api obsoletas


El resaltado del IDE en tiempo real cuando el código coincide con una Inspección puede ayudarnos a mejorar nuestra codificación de forma dinámica. Después de identificar el problema en el código, el uso de IntelliJ Intention Actions para QuickFix el código puede reforzar mejores patrones.

Perfil de las inspecciones

Las inspecciones pueden ejecutarse por lotes desde el IDE, y desde la línea de comandos o en un proceso de integración continua.

La clave para trabajar con las inspecciones de IntelliJ como un lote es mediante el uso de un Perfil de Inspección.

IntelliJ tiene dos perfiles de inspección por defecto: uno almacenado en el proyecto, y otro almacenado en el IDE.

Se pueden crear nuevos perfiles de inspección para configurar plugins o casos de uso específicos, por ejemplo

  • Ejecutar sólo el escaneo en tiempo real de Checkstyle
  • Ejecutar un conjunto específico de reglas de Sensei
  • Ejecutar las comprobaciones de HTML

Las inspecciones de un perfil pueden activarse o desactivarse desde las Preferencias de IntelliJ. El cuadro de diálogo de Preferencias es también una forma sencilla de conocer la gama de Inspecciones disponibles.


Inspecciones Uso De Api Marcado Para La Eliminación


El icono de la "herramienta" le permite duplicar un perfil y crear un nuevo perfil para recoger un conjunto específico de reglas.


Icono de la herramienta para duplicar un perfil


Ejecución de un perfil de inspección en el IDE

Los Perfiles de Inspección pueden ser ejecutados desde el IDE usando el menú `Analizar | Inspeccionar Código...`.


Ejecutar un perfil de inspección utilizando el código de análisis o inspección


La función de análisis le permite controlar el ámbito en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluyendo o excluyendo los orígenes de las pruebas, o un conjunto específico de archivos. 


Especifique el alcance de la inspección


También puede gestionar los perfiles de inspección desde aquí para crear o configurar un perfil concreto.


Al hacer clic en [Aceptar] en el cuadro de diálogo "Especificar ámbito de inspección", IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en el ámbito definido.

IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña `Resultados de la inspección`.


IntelliJ informa de los resultados de la ejecución de las inspecciones en la pestaña de resultados de inspección


El plugin Sensei de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las Acciones de Intención de IntelliJ. Esto significa que se cargan en IntelliJ como inspecciones y pueden agruparse, activarse y desactivarse utilizando perfiles de inspección. La creación de un perfil de inspección personalizado y el uso de la función de análisis del código de inspección es la forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto.



Ejecución de un perfil de inspección desde la línea de comandos

IntelliJ tiene la capacidad de ejecutar inspecciones desde la línea de comandos, tal y como documenta JetBrains:

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


Yo uso principalmente macOS, y puedo ejecutar una sola instancia de IntelliJ desde la línea de comandos con:

open -na "IntelliJ IDEA CE.app"


Para facilitar la ejecución, añado esto a un script de comandos del shell.

vi /usr/local/bin/idea


El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Luego hice este ejecutable para permitirme simplificar el proceso de inspección de la línea de comandos.

chmod 755 /usr/local/bin/idea


La documentación oficial de intellij describe la forma general del comando de inspección como

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


En la práctica, califico completamente las rutas y no necesito ninguna opción:

idea inspect /Users/user/GitHub/sensei-blog-examples /Users/user/GitHub/sensei-blog-examples/.idea/inspectionProfiles/senseiprofile.xml /Users/user/GitHub/sensei-blog-examples/scan-results

Esto ejecuta todas las inspecciones que agregué al `senseiprofile` y reporta los resultados en la carpeta `scan-results`.


Visualización de los resultados de la inspección

Podemos informar de estos resultados desde la integración continua, como veremos más adelante.

También podemos verlos dentro del propio IntelliJ utilizando la función `Analyse \ View Offline Inspection Results...`.


Analizar Ver los resultados de la inspección sin conexión


Esto cargará los resultados en la pestaña "Resultados de la inspección".


Carga los resultados en la pestaña de resultados de inspección


Esto está oficialmente documentado en el sitio de JetBrains:

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Esto podría utilizarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporara a un proceso de Integración Continua y los revisores quisieran comprobar el contexto de origen completo de cualquiera de las entradas de resultados de la Inspección.

Perfiles de inspección en la integración continua

Al añadir la inspección de la línea de comandos en la integración continua, lo ideal es que queramos que se genere un informe de forma automática y hay varias opciones abiertas para nosotros.

TeamCity ofrece soporte inmediato para los perfiles de inspección en la integración continua.

- https://www.jetbrains.com/help/teamcity/inspections.html


El plugin Jenkins Warnings NG soporta la salida de línea de comandos de IntelliJ Inspections como uno de los formatos de informe.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Existen proyectos comunitarios como `idea CLI Inspector` para apoyar el uso de los Perfiles de Inspección en otras herramientas de CI, por ejemplo

- https://github.com/bentolor/idea-cli-inspector


El futuro de los Perfiles de Inspección en un proceso de CI parece aún más brillante con la introducción del proyecto JetBrains Qodana. El proyecto Qodana es una versión sin cabeza de IntelliJ con acciones oficiales de Github e imágenes Docker.

- https://github.com/JetBrains/Qodana


Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei lo está supervisando para que se convierta en una plataforma soportada oficialmente para ejecutar las reglas de Sensei como parte de la Integración Continua.


Resumen

Las Acciones de Intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.

Los Perfiles de Inspección nos permiten reunirlos en perfiles que pueden ejecutarse por lotes como una acción de Análisis e Inspección de Código. Esto puede ser útil si encontramos un patrón y queremos volver a comprobar si lo hemos pasado por alto en alguna otra parte de nuestro código.

Los Perfiles de Inspección pueden ejecutarse desde la línea de comandos e incluso incorporarse a los procesos de Integración Continua apoyando un modelo de "confiar, pero verificar" y detectar cualquier desviación accidental.

Todo lo anterior está incorporado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de Integración Continua con la introducción de Qodana.


Sensei recetas se cargan en IntelliJ para actuar como Acciones de Intención nativas y ser recogidas en Perfiles de Inspección para soportar la comprobación por lotes a través de Inspect Code y el soporte de Integración Continua proporcionado por la funcionalidad oficial de ejecución de Línea de Comandos de JetBrains.

---


Puede instalar Sensei desde IntelliJ usando "Preferences \ Plugins" (Mac) o "Settings \ Plugins" (Windows) y luego sólo busque "sensei secure code".

Si quieres probar a ejecutar un proyecto en IntelliJ desde la línea de comandos, el proyecto utilizado en este post se puede encontrar en el repositorio `sensei-blog-examples` en la cuenta de GitHub de Secure Code Warrior . Un ejercicio para el lector es crear un perfil que ejecute sólo las reglas de Sensei . Pruébalo:


https://github.com/securecodewarrior/sensei-blog-examples

Más información sobre Sensei


Mostrar el recurso
Mostrar el recurso

Apprenez à exécuter les actions d'intention de Sensei et IntelliJ en mode batch sous forme d'inspections dans l'EDI, à partir de la ligne de commande et en intégration continue.

¿Desea obtener más información?

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Alan Richardson
Publicado el 15 de febrero de 2021

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Compartir en:
marcas de LinkedInSocialx logotipo

Ejecución de inspecciones de IntelliJ desde la integración continua

IntelliJ IDEA ofrece funcionalidad para ayudar a mejorar nuestra codificación, dentro del IDE al escribir código como Intenciones. Las Intenciones pueden ser usadas en lote para inspeccionar el código en busca de patrones a lo largo de la fuente e incluso extenderse al análisis de la Línea de Comandos o añadirse a la Integración Continua. Este post cubre la funcionalidad fuera de la caja de IntelliJ y la expansión con Intenciones personalizadas creadas en Sensei.


Inspecciones de IntelliJ

La función de Inspecciones de IntelliJ impulsa la visualización de muchos de los errores que se informan dinámicamente en el IDE cuando se codifica, por ejemplo

  • detectar las clases abstractas que pueden convertirse en interfaces,
  • identificar los campos de clase redundantes que pueden ser locales,
  • advertencia sobre el uso de métodos obsoletos,
  • etc.


Estas inspecciones resaltan el código que coincide en el IDE como Acciones de Intención que a menudo tienen un QuickFix asociado.


Inspección de opciones de uso de Api obsoletas


El resaltado del IDE en tiempo real cuando el código coincide con una Inspección puede ayudarnos a mejorar nuestra codificación de forma dinámica. Después de identificar el problema en el código, el uso de IntelliJ Intention Actions para QuickFix el código puede reforzar mejores patrones.

Perfil de las inspecciones

Las inspecciones pueden ejecutarse por lotes desde el IDE, y desde la línea de comandos o en un proceso de integración continua.

La clave para trabajar con las inspecciones de IntelliJ como un lote es mediante el uso de un Perfil de Inspección.

IntelliJ tiene dos perfiles de inspección por defecto: uno almacenado en el proyecto, y otro almacenado en el IDE.

Se pueden crear nuevos perfiles de inspección para configurar plugins o casos de uso específicos, por ejemplo

  • Ejecutar sólo el escaneo en tiempo real de Checkstyle
  • Ejecutar un conjunto específico de reglas de Sensei
  • Ejecutar las comprobaciones de HTML

Las inspecciones de un perfil pueden activarse o desactivarse desde las Preferencias de IntelliJ. El cuadro de diálogo de Preferencias es también una forma sencilla de conocer la gama de Inspecciones disponibles.


Inspecciones Uso De Api Marcado Para La Eliminación


El icono de la "herramienta" le permite duplicar un perfil y crear un nuevo perfil para recoger un conjunto específico de reglas.


Icono de la herramienta para duplicar un perfil


Ejecución de un perfil de inspección en el IDE

Los Perfiles de Inspección pueden ser ejecutados desde el IDE usando el menú `Analizar | Inspeccionar Código...`.


Ejecutar un perfil de inspección utilizando el código de análisis o inspección


La función de análisis le permite controlar el ámbito en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluyendo o excluyendo los orígenes de las pruebas, o un conjunto específico de archivos. 


Especifique el alcance de la inspección


También puede gestionar los perfiles de inspección desde aquí para crear o configurar un perfil concreto.


Al hacer clic en [Aceptar] en el cuadro de diálogo "Especificar ámbito de inspección", IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en el ámbito definido.

IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña `Resultados de la inspección`.


IntelliJ informa de los resultados de la ejecución de las inspecciones en la pestaña de resultados de inspección


El plugin Sensei de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las Acciones de Intención de IntelliJ. Esto significa que se cargan en IntelliJ como inspecciones y pueden agruparse, activarse y desactivarse utilizando perfiles de inspección. La creación de un perfil de inspección personalizado y el uso de la función de análisis del código de inspección es la forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto.



Ejecución de un perfil de inspección desde la línea de comandos

IntelliJ tiene la capacidad de ejecutar inspecciones desde la línea de comandos, tal y como documenta JetBrains:

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


Yo uso principalmente macOS, y puedo ejecutar una sola instancia de IntelliJ desde la línea de comandos con:

open -na "IntelliJ IDEA CE.app"


Para facilitar la ejecución, añado esto a un script de comandos del shell.

vi /usr/local/bin/idea


El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Luego hice este ejecutable para permitirme simplificar el proceso de inspección de la línea de comandos.

chmod 755 /usr/local/bin/idea


La documentación oficial de intellij describe la forma general del comando de inspección como

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


En la práctica, califico completamente las rutas y no necesito ninguna opción:

idea inspect /Users/user/GitHub/sensei-blog-examples /Users/user/GitHub/sensei-blog-examples/.idea/inspectionProfiles/senseiprofile.xml /Users/user/GitHub/sensei-blog-examples/scan-results

Esto ejecuta todas las inspecciones que agregué al `senseiprofile` y reporta los resultados en la carpeta `scan-results`.


Visualización de los resultados de la inspección

Podemos informar de estos resultados desde la integración continua, como veremos más adelante.

También podemos verlos dentro del propio IntelliJ utilizando la función `Analyse \ View Offline Inspection Results...`.


Analizar Ver los resultados de la inspección sin conexión


Esto cargará los resultados en la pestaña "Resultados de la inspección".


Carga los resultados en la pestaña de resultados de inspección


Esto está oficialmente documentado en el sitio de JetBrains:

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Esto podría utilizarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporara a un proceso de Integración Continua y los revisores quisieran comprobar el contexto de origen completo de cualquiera de las entradas de resultados de la Inspección.

Perfiles de inspección en la integración continua

Al añadir la inspección de la línea de comandos en la integración continua, lo ideal es que queramos que se genere un informe de forma automática y hay varias opciones abiertas para nosotros.

TeamCity ofrece soporte inmediato para los perfiles de inspección en la integración continua.

- https://www.jetbrains.com/help/teamcity/inspections.html


El plugin Jenkins Warnings NG soporta la salida de línea de comandos de IntelliJ Inspections como uno de los formatos de informe.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Existen proyectos comunitarios como `idea CLI Inspector` para apoyar el uso de los Perfiles de Inspección en otras herramientas de CI, por ejemplo

- https://github.com/bentolor/idea-cli-inspector


El futuro de los Perfiles de Inspección en un proceso de CI parece aún más brillante con la introducción del proyecto JetBrains Qodana. El proyecto Qodana es una versión sin cabeza de IntelliJ con acciones oficiales de Github e imágenes Docker.

- https://github.com/JetBrains/Qodana


Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei lo está supervisando para que se convierta en una plataforma soportada oficialmente para ejecutar las reglas de Sensei como parte de la Integración Continua.


Resumen

Las Acciones de Intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.

Los Perfiles de Inspección nos permiten reunirlos en perfiles que pueden ejecutarse por lotes como una acción de Análisis e Inspección de Código. Esto puede ser útil si encontramos un patrón y queremos volver a comprobar si lo hemos pasado por alto en alguna otra parte de nuestro código.

Los Perfiles de Inspección pueden ejecutarse desde la línea de comandos e incluso incorporarse a los procesos de Integración Continua apoyando un modelo de "confiar, pero verificar" y detectar cualquier desviación accidental.

Todo lo anterior está incorporado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de Integración Continua con la introducción de Qodana.


Sensei recetas se cargan en IntelliJ para actuar como Acciones de Intención nativas y ser recogidas en Perfiles de Inspección para soportar la comprobación por lotes a través de Inspect Code y el soporte de Integración Continua proporcionado por la funcionalidad oficial de ejecución de Línea de Comandos de JetBrains.

---


Puede instalar Sensei desde IntelliJ usando "Preferences \ Plugins" (Mac) o "Settings \ Plugins" (Windows) y luego sólo busque "sensei secure code".

Si quieres probar a ejecutar un proyecto en IntelliJ desde la línea de comandos, el proyecto utilizado en este post se puede encontrar en el repositorio `sensei-blog-examples` en la cuenta de GitHub de Secure Code Warrior . Un ejercicio para el lector es crear un perfil que ejecute sólo las reglas de Sensei . Pruébalo:


https://github.com/securecodewarrior/sensei-blog-examples

Más información sobre Sensei


Mostrar el recurso
Mostrar el recurso

Rellene el siguiente formulario para descargar el informe.

Nos gustaría obtener su autorización para enviarle información sobre nuestros productos y/o sobre temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el mayor cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, active las cookies «Analytics». No dude en desactivarlas de nuevo una vez que haya terminado.

Ejecución de inspecciones de IntelliJ desde la integración continua

IntelliJ IDEA ofrece funcionalidad para ayudar a mejorar nuestra codificación, dentro del IDE al escribir código como Intenciones. Las Intenciones pueden ser usadas en lote para inspeccionar el código en busca de patrones a lo largo de la fuente e incluso extenderse al análisis de la Línea de Comandos o añadirse a la Integración Continua. Este post cubre la funcionalidad fuera de la caja de IntelliJ y la expansión con Intenciones personalizadas creadas en Sensei.


Inspecciones de IntelliJ

La función de Inspecciones de IntelliJ impulsa la visualización de muchos de los errores que se informan dinámicamente en el IDE cuando se codifica, por ejemplo

  • detectar las clases abstractas que pueden convertirse en interfaces,
  • identificar los campos de clase redundantes que pueden ser locales,
  • advertencia sobre el uso de métodos obsoletos,
  • etc.


Estas inspecciones resaltan el código que coincide en el IDE como Acciones de Intención que a menudo tienen un QuickFix asociado.


Inspección de opciones de uso de Api obsoletas


El resaltado del IDE en tiempo real cuando el código coincide con una Inspección puede ayudarnos a mejorar nuestra codificación de forma dinámica. Después de identificar el problema en el código, el uso de IntelliJ Intention Actions para QuickFix el código puede reforzar mejores patrones.

Perfil de las inspecciones

Las inspecciones pueden ejecutarse por lotes desde el IDE, y desde la línea de comandos o en un proceso de integración continua.

La clave para trabajar con las inspecciones de IntelliJ como un lote es mediante el uso de un Perfil de Inspección.

IntelliJ tiene dos perfiles de inspección por defecto: uno almacenado en el proyecto, y otro almacenado en el IDE.

Se pueden crear nuevos perfiles de inspección para configurar plugins o casos de uso específicos, por ejemplo

  • Ejecutar sólo el escaneo en tiempo real de Checkstyle
  • Ejecutar un conjunto específico de reglas de Sensei
  • Ejecutar las comprobaciones de HTML

Las inspecciones de un perfil pueden activarse o desactivarse desde las Preferencias de IntelliJ. El cuadro de diálogo de Preferencias es también una forma sencilla de conocer la gama de Inspecciones disponibles.


Inspecciones Uso De Api Marcado Para La Eliminación


El icono de la "herramienta" le permite duplicar un perfil y crear un nuevo perfil para recoger un conjunto específico de reglas.


Icono de la herramienta para duplicar un perfil


Ejecución de un perfil de inspección en el IDE

Los Perfiles de Inspección pueden ser ejecutados desde el IDE usando el menú `Analizar | Inspeccionar Código...`.


Ejecutar un perfil de inspección utilizando el código de análisis o inspección


La función de análisis le permite controlar el ámbito en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluyendo o excluyendo los orígenes de las pruebas, o un conjunto específico de archivos. 


Especifique el alcance de la inspección


También puede gestionar los perfiles de inspección desde aquí para crear o configurar un perfil concreto.


Al hacer clic en [Aceptar] en el cuadro de diálogo "Especificar ámbito de inspección", IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en el ámbito definido.

IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña `Resultados de la inspección`.


IntelliJ informa de los resultados de la ejecución de las inspecciones en la pestaña de resultados de inspección


El plugin Sensei de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las Acciones de Intención de IntelliJ. Esto significa que se cargan en IntelliJ como inspecciones y pueden agruparse, activarse y desactivarse utilizando perfiles de inspección. La creación de un perfil de inspección personalizado y el uso de la función de análisis del código de inspección es la forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto.



Ejecución de un perfil de inspección desde la línea de comandos

IntelliJ tiene la capacidad de ejecutar inspecciones desde la línea de comandos, tal y como documenta JetBrains:

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


Yo uso principalmente macOS, y puedo ejecutar una sola instancia de IntelliJ desde la línea de comandos con:

open -na "IntelliJ IDEA CE.app"


Para facilitar la ejecución, añado esto a un script de comandos del shell.

vi /usr/local/bin/idea


El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Luego hice este ejecutable para permitirme simplificar el proceso de inspección de la línea de comandos.

chmod 755 /usr/local/bin/idea


La documentación oficial de intellij describe la forma general del comando de inspección como

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


En la práctica, califico completamente las rutas y no necesito ninguna opción:

idea inspect /Users/user/GitHub/sensei-blog-examples /Users/user/GitHub/sensei-blog-examples/.idea/inspectionProfiles/senseiprofile.xml /Users/user/GitHub/sensei-blog-examples/scan-results

Esto ejecuta todas las inspecciones que agregué al `senseiprofile` y reporta los resultados en la carpeta `scan-results`.


Visualización de los resultados de la inspección

Podemos informar de estos resultados desde la integración continua, como veremos más adelante.

También podemos verlos dentro del propio IntelliJ utilizando la función `Analyse \ View Offline Inspection Results...`.


Analizar Ver los resultados de la inspección sin conexión


Esto cargará los resultados en la pestaña "Resultados de la inspección".


Carga los resultados en la pestaña de resultados de inspección


Esto está oficialmente documentado en el sitio de JetBrains:

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Esto podría utilizarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporara a un proceso de Integración Continua y los revisores quisieran comprobar el contexto de origen completo de cualquiera de las entradas de resultados de la Inspección.

Perfiles de inspección en la integración continua

Al añadir la inspección de la línea de comandos en la integración continua, lo ideal es que queramos que se genere un informe de forma automática y hay varias opciones abiertas para nosotros.

TeamCity ofrece soporte inmediato para los perfiles de inspección en la integración continua.

- https://www.jetbrains.com/help/teamcity/inspections.html


El plugin Jenkins Warnings NG soporta la salida de línea de comandos de IntelliJ Inspections como uno de los formatos de informe.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Existen proyectos comunitarios como `idea CLI Inspector` para apoyar el uso de los Perfiles de Inspección en otras herramientas de CI, por ejemplo

- https://github.com/bentolor/idea-cli-inspector


El futuro de los Perfiles de Inspección en un proceso de CI parece aún más brillante con la introducción del proyecto JetBrains Qodana. El proyecto Qodana es una versión sin cabeza de IntelliJ con acciones oficiales de Github e imágenes Docker.

- https://github.com/JetBrains/Qodana


Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei lo está supervisando para que se convierta en una plataforma soportada oficialmente para ejecutar las reglas de Sensei como parte de la Integración Continua.


Resumen

Las Acciones de Intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.

Los Perfiles de Inspección nos permiten reunirlos en perfiles que pueden ejecutarse por lotes como una acción de Análisis e Inspección de Código. Esto puede ser útil si encontramos un patrón y queremos volver a comprobar si lo hemos pasado por alto en alguna otra parte de nuestro código.

Los Perfiles de Inspección pueden ejecutarse desde la línea de comandos e incluso incorporarse a los procesos de Integración Continua apoyando un modelo de "confiar, pero verificar" y detectar cualquier desviación accidental.

Todo lo anterior está incorporado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de Integración Continua con la introducción de Qodana.


Sensei recetas se cargan en IntelliJ para actuar como Acciones de Intención nativas y ser recogidas en Perfiles de Inspección para soportar la comprobación por lotes a través de Inspect Code y el soporte de Integración Continua proporcionado por la funcionalidad oficial de ejecución de Línea de Comandos de JetBrains.

---


Puede instalar Sensei desde IntelliJ usando "Preferences \ Plugins" (Mac) o "Settings \ Plugins" (Windows) y luego sólo busque "sensei secure code".

Si quieres probar a ejecutar un proyecto en IntelliJ desde la línea de comandos, el proyecto utilizado en este post se puede encontrar en el repositorio `sensei-blog-examples` en la cuenta de GitHub de Secure Code Warrior . Un ejercicio para el lector es crear un perfil que ejecute sólo las reglas de Sensei . Pruébalo:


https://github.com/securecodewarrior/sensei-blog-examples

Más información sobre Sensei


Ver el seminario web
Comience
Más información

Haga clic en el enlace siguiente y descargue el PDF de este recurso.

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Mostrar el informeReserve una demostración
Descargar el PDF
Mostrar el recurso
Compartir en:
marcas de LinkedInSocialx logotipo
¿Desea obtener más información?

Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Alan Richardson
Publicado el 15 de febrero de 2021

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Compartir en:
marcas de LinkedInSocialx logotipo

Ejecución de inspecciones de IntelliJ desde la integración continua

IntelliJ IDEA ofrece funcionalidad para ayudar a mejorar nuestra codificación, dentro del IDE al escribir código como Intenciones. Las Intenciones pueden ser usadas en lote para inspeccionar el código en busca de patrones a lo largo de la fuente e incluso extenderse al análisis de la Línea de Comandos o añadirse a la Integración Continua. Este post cubre la funcionalidad fuera de la caja de IntelliJ y la expansión con Intenciones personalizadas creadas en Sensei.


Inspecciones de IntelliJ

La función de Inspecciones de IntelliJ impulsa la visualización de muchos de los errores que se informan dinámicamente en el IDE cuando se codifica, por ejemplo

  • detectar las clases abstractas que pueden convertirse en interfaces,
  • identificar los campos de clase redundantes que pueden ser locales,
  • advertencia sobre el uso de métodos obsoletos,
  • etc.


Estas inspecciones resaltan el código que coincide en el IDE como Acciones de Intención que a menudo tienen un QuickFix asociado.


Inspección de opciones de uso de Api obsoletas


El resaltado del IDE en tiempo real cuando el código coincide con una Inspección puede ayudarnos a mejorar nuestra codificación de forma dinámica. Después de identificar el problema en el código, el uso de IntelliJ Intention Actions para QuickFix el código puede reforzar mejores patrones.

Perfil de las inspecciones

Las inspecciones pueden ejecutarse por lotes desde el IDE, y desde la línea de comandos o en un proceso de integración continua.

La clave para trabajar con las inspecciones de IntelliJ como un lote es mediante el uso de un Perfil de Inspección.

IntelliJ tiene dos perfiles de inspección por defecto: uno almacenado en el proyecto, y otro almacenado en el IDE.

Se pueden crear nuevos perfiles de inspección para configurar plugins o casos de uso específicos, por ejemplo

  • Ejecutar sólo el escaneo en tiempo real de Checkstyle
  • Ejecutar un conjunto específico de reglas de Sensei
  • Ejecutar las comprobaciones de HTML

Las inspecciones de un perfil pueden activarse o desactivarse desde las Preferencias de IntelliJ. El cuadro de diálogo de Preferencias es también una forma sencilla de conocer la gama de Inspecciones disponibles.


Inspecciones Uso De Api Marcado Para La Eliminación


El icono de la "herramienta" le permite duplicar un perfil y crear un nuevo perfil para recoger un conjunto específico de reglas.


Icono de la herramienta para duplicar un perfil


Ejecución de un perfil de inspección en el IDE

Los Perfiles de Inspección pueden ser ejecutados desde el IDE usando el menú `Analizar | Inspeccionar Código...`.


Ejecutar un perfil de inspección utilizando el código de análisis o inspección


La función de análisis le permite controlar el ámbito en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluyendo o excluyendo los orígenes de las pruebas, o un conjunto específico de archivos. 


Especifique el alcance de la inspección


También puede gestionar los perfiles de inspección desde aquí para crear o configurar un perfil concreto.


Al hacer clic en [Aceptar] en el cuadro de diálogo "Especificar ámbito de inspección", IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en el ámbito definido.

IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña `Resultados de la inspección`.


IntelliJ informa de los resultados de la ejecución de las inspecciones en la pestaña de resultados de inspección


El plugin Sensei de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las Acciones de Intención de IntelliJ. Esto significa que se cargan en IntelliJ como inspecciones y pueden agruparse, activarse y desactivarse utilizando perfiles de inspección. La creación de un perfil de inspección personalizado y el uso de la función de análisis del código de inspección es la forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto.



Ejecución de un perfil de inspección desde la línea de comandos

IntelliJ tiene la capacidad de ejecutar inspecciones desde la línea de comandos, tal y como documenta JetBrains:

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


Yo uso principalmente macOS, y puedo ejecutar una sola instancia de IntelliJ desde la línea de comandos con:

open -na "IntelliJ IDEA CE.app"


Para facilitar la ejecución, añado esto a un script de comandos del shell.

vi /usr/local/bin/idea


El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Luego hice este ejecutable para permitirme simplificar el proceso de inspección de la línea de comandos.

chmod 755 /usr/local/bin/idea


La documentación oficial de intellij describe la forma general del comando de inspección como

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


En la práctica, califico completamente las rutas y no necesito ninguna opción:

idea inspect /Users/user/GitHub/sensei-blog-examples /Users/user/GitHub/sensei-blog-examples/.idea/inspectionProfiles/senseiprofile.xml /Users/user/GitHub/sensei-blog-examples/scan-results

Esto ejecuta todas las inspecciones que agregué al `senseiprofile` y reporta los resultados en la carpeta `scan-results`.


Visualización de los resultados de la inspección

Podemos informar de estos resultados desde la integración continua, como veremos más adelante.

También podemos verlos dentro del propio IntelliJ utilizando la función `Analyse \ View Offline Inspection Results...`.


Analizar Ver los resultados de la inspección sin conexión


Esto cargará los resultados en la pestaña "Resultados de la inspección".


Carga los resultados en la pestaña de resultados de inspección


Esto está oficialmente documentado en el sitio de JetBrains:

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Esto podría utilizarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporara a un proceso de Integración Continua y los revisores quisieran comprobar el contexto de origen completo de cualquiera de las entradas de resultados de la Inspección.

Perfiles de inspección en la integración continua

Al añadir la inspección de la línea de comandos en la integración continua, lo ideal es que queramos que se genere un informe de forma automática y hay varias opciones abiertas para nosotros.

TeamCity ofrece soporte inmediato para los perfiles de inspección en la integración continua.

- https://www.jetbrains.com/help/teamcity/inspections.html


El plugin Jenkins Warnings NG soporta la salida de línea de comandos de IntelliJ Inspections como uno de los formatos de informe.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Existen proyectos comunitarios como `idea CLI Inspector` para apoyar el uso de los Perfiles de Inspección en otras herramientas de CI, por ejemplo

- https://github.com/bentolor/idea-cli-inspector


El futuro de los Perfiles de Inspección en un proceso de CI parece aún más brillante con la introducción del proyecto JetBrains Qodana. El proyecto Qodana es una versión sin cabeza de IntelliJ con acciones oficiales de Github e imágenes Docker.

- https://github.com/JetBrains/Qodana


Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei lo está supervisando para que se convierta en una plataforma soportada oficialmente para ejecutar las reglas de Sensei como parte de la Integración Continua.


Resumen

Las Acciones de Intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.

Los Perfiles de Inspección nos permiten reunirlos en perfiles que pueden ejecutarse por lotes como una acción de Análisis e Inspección de Código. Esto puede ser útil si encontramos un patrón y queremos volver a comprobar si lo hemos pasado por alto en alguna otra parte de nuestro código.

Los Perfiles de Inspección pueden ejecutarse desde la línea de comandos e incluso incorporarse a los procesos de Integración Continua apoyando un modelo de "confiar, pero verificar" y detectar cualquier desviación accidental.

Todo lo anterior está incorporado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de Integración Continua con la introducción de Qodana.


Sensei recetas se cargan en IntelliJ para actuar como Acciones de Intención nativas y ser recogidas en Perfiles de Inspección para soportar la comprobación por lotes a través de Inspect Code y el soporte de Integración Continua proporcionado por la funcionalidad oficial de ejecución de Línea de Comandos de JetBrains.

---


Puede instalar Sensei desde IntelliJ usando "Preferences \ Plugins" (Mac) o "Settings \ Plugins" (Windows) y luego sólo busque "sensei secure code".

Si quieres probar a ejecutar un proyecto en IntelliJ desde la línea de comandos, el proyecto utilizado en este post se puede encontrar en el repositorio `sensei-blog-examples` en la cuenta de GitHub de Secure Code Warrior . Un ejercicio para el lector es crear un perfil que ejecute sólo las reglas de Sensei . Pruébalo:


https://github.com/securecodewarrior/sensei-blog-examples

Más información sobre Sensei


Índice

Descargar el PDF
Mostrar el recurso
¿Desea obtener más información?

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones