es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo ejecuto el marco de comprobación en solo una clase?

Antecedentes

Estoy utilizando el marco de verificación con gradle de checkers de la siguiente manera:

build.gradle:

plugins {
         id 'org.checkerframework' version '0.6.3'
}

checkerFramework {
    checkers = [
            'org.checkerframework.checker.nullness.NullnessChecker',
            'org.checkerframework.checker.tainting.TaintingChecker'
    ]
}
apply plugin: 'org.checkerframework'

En este momento, está mirando todas las clases en mi compilación cuando ejecuto ./gradlew build. No quiero que el marco de verificación mire todas las clases sino solo un archivo .java en particular.

Pregunta

¿Cómo limito el marco de verificación para que ejecute un análisis estático en solo un archivo .java?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para limitar el marco del verificador a la ejecución de un análisis estático en un archivo .java específico, se puede utilizar la tarea compileJava en el archivo build.gradle y especificar el archivo a verificar en el parámetro source. Aquí hay un ejemplo:

    plugins {
        id 'org.checkerframework'
    }
    
    checkerFramework {
        checkers = [
            'org.checkerframework.checker.nullness.NullnessChecker',
            'org.checkerframework.checker.tainting.TaintingChecker'
        ]
    }
    
    // Especifique el archivo fuente que se verificará en la tarea compileJava
    tasks.compileJava {
        options.compilerArgs += "-Asourcepath=src/main/java/your/package/YourClass.java"
    }
    

    En el ejemplo anterior, se reemplazaría your/package/YourClass.java con la ruta al archivo .java específico en el que se desea ejecutar el análisis estático del marco del verificador. Esto asegurará que el marco del verificador solo analice ese archivo en particular en lugar de todas las clases en la compilación.

Comments are closed.