Jenkisfile脚本-jacoco相关


问题:2023-06-06 14:33:43.781190
jenkisfile脚本里jacoco阶段,jacoco buildoverbuild什么意思,什么作用

答案: 在Jenkinsfile脚本中,jacoco阶段是用于生成代码覆盖率报告的阶段。在这个阶段中,jacoco buildoverbuild的意思是在构建过程中覆盖之前的构建结果。这个选项的作用是确保代码覆盖率报告是基于最新的代码构建结果生成的,而不是基于之前的构建结果。这样可以确保代码覆盖率报告的准确性和可靠性。



问题:2023-06-06 14:34:56.916058
jenkisfile脚本里jacoco阶段,deltaBranchCoverage什么意思,什么作用

答案: deltaBranchCoverage是Jacoco插件中的一个参数,用于计算分支覆盖率的增量值。它表示当前构建与上一次构建之间分支覆盖率的差异。在Jenkinsfile脚本中,可以使用该参数来监控代码覆盖率的变化情况,以便及时发现代码质量问题并进行优化。通过监控deltaBranchCoverage的值,可以了解代码覆盖率的变化趋势,从而更好地掌握项目的质量状况。



问题:2023-06-06 14:36:43.180501
jenkisfile脚本里jacoco阶段,单元测试门禁怎么写?一般需要哪些门禁?门禁通过就发送成功通知给第三方,失败就发送失败通知,jenkisfile脚本怎么写

答案: 在Jenkinsfile脚本中,可以使用以下步骤来实现Jacoco阶段的单元测试门禁:

  1. 定义一个变量来存储测试结果,例如:
def testResult = sh(script: 'mvn test', returnStdout: true)
  1. 使用正则表达式或其他方法来解析测试结果,以确定测试是否通过。例如,如果测试结果中包含“BUILD SUCCESS”字样,则测试通过:
if (testResult =~ /BUILD SUCCESS/) {
    // 测试通过,发送成功通知
} else {
    // 测试失败,发送失败通知
}
  1. 在门禁通过或失败的情况下,使用Jenkins的通知插件来发送通知。例如,使用Email Extension插件来发送邮件通知:
emailext body: 'Unit tests passed successfully', subject: 'Unit tests passed', to: 'user@example.com'

完整的Jenkinsfile脚本示例:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Jacoco') {
            steps {
                sh 'mvn jacoco:report'
            }
        }
        stage('Unit Tests') {
            steps {
                def testResult = sh(script: 'mvn test', returnStdout: true)
                if (testResult =~ /BUILD SUCCESS/) {
                    emailext body: 'Unit tests passed successfully', subject: 'Unit tests passed', to: 'user@example.com'
                } else {
                    emailext body: 'Unit tests failed', subject: 'Unit tests failed', to: 'user@example.com'
                }
            }
        }
    }
}


问题:2023-06-06 14:37:37.120601
jenkisfile脚本里jacoco阶段,单元测试门禁怎么写?一般需要哪些门禁?

答案: 在Jenkinsfile脚本中,可以使用以下代码段来设置Jacoco阶段的单元测试门禁:

stage('Jacoco') {
    steps {
        sh './gradlew test jacocoTestReport'
    }
    post {
        always {
            jacoco(execPattern: '**/build/jacoco/*.exec')
        }
        success {
            junit '**/build/test-results/**/*.xml'
        }
        failure {
            script {
                def coverage = jacoco(append: true, execPattern: '**/build/jacoco/*.exec')
                if (coverage.getInstructionCoverage() < 80) {
                    error "Code coverage is too low (${coverage.getInstructionCoverage()}%), failing the build"
                }
            }
        }
    }
}

在这个代码段中,我们设置了三个门禁:

  1. jacoco门禁:用于检查Jacoco测试覆盖率报告,确保代码覆盖率达到预期水平。

  2. junit门禁:用于检查JUnit测试结果,确保所有测试都通过。

  3. failure门禁:用于检查Jacoco测试覆盖率报告,如果覆盖率低于80%,则会导致构建失败。

除了上述门禁之外,还可以添加其他门禁,例如:

  1. timeout门禁:用于设置测试运行的最大时间,以避免测试运行时间过长而导致构建失败。

  2. retry门禁:用于在测试失败时重试测试,以避免由于偶然错误而导致构建失败。

  3. input门禁:用于在测试运行之前要求用户输入确认,以确保测试运行前的准备工作已完成。



问题:2023-06-06 14:39:28.543660
jenkisfile脚本里jacoco阶段,-Dmaven.test.filure.ignore=true 什么意思

答案: 这个参数的意思是在运行Jacoco代码覆盖率工具时,忽略测试失败的情况。通常情况下,如果有测试失败,Jacoco会停止执行并生成覆盖率报告。但是使用该参数后,即使有测试失败,Jacoco也会继续执行并生成覆盖率报告。



问题:2023-06-06 14:40:32.597625
jenkisfile脚本里jacoco阶段怎么写,具体讲下每个参数什么意思

答案: 在Jenkinsfile脚本中,Jacoco阶段可以使用以下代码块:

stage('Jacoco') {
    steps {
        jacoco(execPattern: '**/build/classes/**/*.class', classPattern: '**/build/classes/**/*.class', sourcePattern: '**/src/main/java', inclusionPattern: '**/*', exclusionPattern: '', minimumInstructionCoverage: '0', minimumBranchCoverage: '0', minimumComplexityCoverage: '0', minimumLineCoverage: '0', minimumMethodCoverage: '0', minimumClassCoverage: '0', maximumInstructionCoverage: '0', maximumBranchCoverage: '0', maximumComplexityCoverage: '0', maximumLineCoverage: '0', maximumMethodCoverage: '0', maximumClassCoverage: '0', changeBuildStatus: true, execFile: 'jacoco.exec', skipCopyOfSrcFiles: false, skipCopyOfExecFiles: false, changeBuildStatusOnError: true, enableBranchCoverage: true, enableDebug: false, enableDump: false, enableInclusionExclusion: false, enableLineCoverage: true, enableMerge: true, enableMethodCoverage: true, enableHtmlReport: true, enableXmlReport: true, enableCsvReport: true, enableProjectReport: true, enableDetailReport: true, thresholdMode: 1, buildThresholds: [[thresholdType: 0, min: 0, max: 0, unstable: false, failing: true], [thresholdType: 1, min: 0, max: 0, unstable: false, failing: true], [thresholdType: 2, min: 0, max: 0, unstable: false, failing: true], [thresholdType: 3, min: 0, max: 0, unstable: false, failing: true], [thresholdType: 4, min: 0, max: 0, unstable: false, failing: true], [thresholdType: 5, min: 0, max: 0, unstable: false, failing: true]], sourceEncoding: 'UTF-8', toolVersion: '4.0.0', violationRules: [[rule: 'RULE0', enabled: false, rulePriority: 0, minimum: 0, maximum: 0, thresholdLimit: 0, thresholdMode: 0, type: 0, pattern: '', message: '', includeStackTrace: false, includeSourceLines: false, includeClassNames: false, includeMethodNames: false, includePackages: false, includeLineNumbers: false, includeNoLocationClasses: false, includeNoLocationMethods: false, includeNoLocationLines: false, includeNoLocationSource: false, includeNoLocationMessage: false, includeNoLocationTypes: false, includeNoLocation: false, includeNoTypes: false, includeNoMethods: false, includeNoClasses: false, includeNoLines: false, includeNoSource: false, includeNoMessage: false, includeNoStackTrace: false, includeNoPackages: false, includeNoLocationStackTrace: false, includeNoTypesStackTrace: false, includeNoMethodsStackTrace: false, includeNoClassesStackTrace: false, includeNoLinesStackTrace: false, includeNoSourceStackTrace: false, includeNoMessageStackTrace: false, includeNoLocationTypesStackTrace: false, includeNoLocationMethodsStackTrace: false, includeNoLocationClassesStackTrace: false, includeNoLocationLinesStackTrace: false, includeNoLocationSourceStackTrace: false, includeNoLocationMessageStackTrace: false, includeStackTraceThreshold: 0, includeSourceLinesThreshold: 0, includeClassNamesThreshold: 0, includeMethodNamesThreshold: 0, includePackagesThreshold: 0, includeLineNumbersThreshold: 0, includeNoLocationClassesThreshold: 0, includeNoLocationMethodsThreshold: 0, includeNoLocationLinesThreshold: 0, includeNoLocationSourceThreshold: 0, includeNoLocationMessageThreshold: 0, includeNoLocationTypesThreshold: 0, includeNoTypesThreshold: 0, includeNoMethodsThreshold: 0, includeNoClassesThreshold: 0, includeNoLinesThreshold: 0, includeNoSourceThreshold: 0, includeNoMessageThreshold: 0, includeNoStackTraceThreshold: 0, includeNoPackagesThreshold: 0, includeNoLocationStackTraceThreshold: 0, includeNoTypesStackTraceThreshold: 0, includeNoMethodsStackTraceThreshold: 0, includeNoClassesStackTraceThreshold: 0, includeNoLinesStackTraceThreshold: 0, includeNoSourceStackTraceThreshold: 0, includeNoMessageStackTraceThreshold: 0, includeNoLocationTypesStackTraceThreshold: 0, includeNoLocationMethodsStackTraceThreshold: 0, includeNoLocationClassesStackTraceThreshold: 0, includeNoLocationLinesStackTraceThreshold: 0, includeNoLocationSourceStackTraceThreshold: 0, includeNoLocationMessageStackTraceThreshold: 0]]])
    }
}

这个代码块中包含了Jacoco阶段的所有参数,下面是每个参数的解释:

  • execPattern: Jacoco执行文件的匹配模式,用于指定Jacoco执行文件的位置。
  • classPattern: Jacoco类文件的匹配模式,用于指定要覆盖的类文件的位置。
  • sourcePattern: Jacoco源文件的匹配模式,用于指定源文件的位置。
  • inclusionPattern: Jacoco包含模式,用于指定要包含的文件或目录。
  • exclusionPattern: Jacoco排除模式,用于指定要排除的文件或目录。
  • minimumInstructionCoverage: 最小指令覆盖率,用于指定要求的最小指令覆盖率。
  • minimumBranchCoverage: 最小分支覆盖率,用于指定要求的最小分支覆盖率。
  • minimumComplexityCoverage: 最小复杂度覆盖率,用于指定要求的最小复杂度覆盖率。
  • minimumLineCoverage: 最小行覆盖率,用于指定要求的最小行覆盖率。
  • minimumMethodCoverage: 最小方法覆盖率,用于指定要求的最小方法覆盖率。
  • minimumClassCoverage: 最小类覆盖率,用于指定要求的最小类覆盖率。
  • maximumInstructionCoverage: 最大指令覆盖率,用于指定要求的最大指令覆盖率。
  • maximumBranchCoverage: 最大分支覆盖率,用于指定要求的最大分支覆盖率。
  • maximumComplexityCoverage: 最大复杂度覆盖率,用于指定要求的最大复杂度覆盖率。
  • maximumLineCoverage: 最大行覆盖率,用于指定要求的最大行覆盖率。
  • maximumMethodCoverage: 最大方法覆盖率,用于指定要求的最大方法覆盖率。
  • maximumClassCoverage: 最大类覆盖率,用于指定要求的最大类覆盖率。
  • changeBuildStatus: 是否改变构建状态,用于指定是否改变构建状态。
  • execFile: Jacoco执行文件的名称,用于指定Jacoco执行文件的名称。
  • skipCopyOfSrcFiles: 是否跳过源文件的复制,用于指定是否跳过源文件的复制。
  • skipCopyOfExecFiles: 是否跳过执行文件的复制,用于指定是否跳过执行文件的复制。
  • changeBuildStatusOnError: 是否在错误时改变构建状态,用于指定是否在错误时改变构建状态。
  • enableBranchCoverage: 是否启用分支覆盖率,用于指定是否启用分支覆盖率。
  • enableDebug: 是否启用调试模式,用于指定是否启用调试模式。
  • enableDump: 是否启用转储模式,用于指定是否启用转储模式。
  • enableInclusionExclusion: 是否启用包含和排除模式,用于指定是否启用包含和排除模式。
  • enableLineCoverage: 是否启用行覆盖率,用于指定是否启用行覆盖率。
  • enableMerge: 是否启用合并模式,用于指定是否启用合并模式。
  • enableMethodCoverage: 是否启用方法覆盖率,用于指定是否启用方法覆盖率。
  • enableHtmlReport: 是否启用HTML报告,用于指定是否启用HTML报告。
  • enableXmlReport: 是否启用XML报告,用于指定是否启用XML报告。
  • enableCsvReport: 是否启用CSV报告,用于指定是否启用CSV报告。
  • enableProjectReport: 是否启用项目报告,用于指定是否启用项目报告。
  • enableDetailReport: 是否启用详细报告,用于指定是否启用详细报告。
  • thresholdMode: 阈值模式,用于指定阈值模式。
  • buildThresholds: 构建阈值,用于指定构建阈值。
  • sourceEncoding: 源文件编码,用于指定源文件编码。
  • toolVersion: 工具版本,用于指定工具版本。
  • violationRules: 违规规则,用于指定违规规则。


问题:2023-06-06 14:59:37.381428
jenkisfile脚本里jacoco阶段,execPattern是干嘛的

答案: execPattern是Jacoco插件中用于指定代码覆盖率数据文件的匹配模式。在Jacoco插件执行过程中,它会根据该模式匹配出所有符合条件的代码覆盖率数据文件,并将它们合并成一个总的覆盖率数据文件。这个总的覆盖率数据文件可以用于生成代码覆盖率报告。execPattern的默认值为**/target/**/jacoco.exec,表示匹配所有target目录下的jacoco.exec文件。如果项目中的代码覆盖率数据文件不是默认的文件名或存放位置,就需要通过修改execPattern来指定正确的匹配模式。



问题:2023-06-06 15:04:30.041590
jenkisfile脚本里jacoco单元测试阶段,怎么写,详细的

答案: 在Jenkinsfile脚本中,可以使用Jacoco插件来进行单元测试覆盖率的统计和报告生成。以下是一个Jacoco单元测试阶段的示例代码:

stage('Unit Test') {
  steps {
    sh './gradlew test jacocoTestReport'
  }
  post {
    always {
      jacoco(execPattern: '**/build/jacoco/*.exec', classPattern: '**/build/classes/**/*.class', sourcePattern: '**/src/main/java', inclusionPattern: '**/*Test.class', exclusionPattern: '**/Test*.class', changeBuildStatus: true, minimumInstructionCoverage: 0, minimumBranchCoverage: 0, minimumComplexityCoverage: 0, minimumLineCoverage: 0, minimumMethodCoverage: 0, minimumClassCoverage: 0)
    }
  }
}

在这个示例中,我们使用Gradle来运行单元测试和生成Jacoco报告。在sh步骤中,我们运行了testjacocoTestReport任务,分别运行单元测试和生成Jacoco报告。在post部分,我们使用了Jacoco插件来生成报告和设置覆盖率的阈值。其中,execPattern指定了Jacoco执行文件的路径,classPattern指定了编译后的class文件路径,sourcePattern指定了源代码路径,inclusionPatternexclusionPattern分别指定了需要和不需要统计覆盖率的测试类。最后,我们设置了各种覆盖率的阈值,如果覆盖率低于阈值,将会导致构建失败。



问题:2023-06-06 15:26:45.460357
jenkisfile脚本里jacoco单元测试阶段,number of found exec files for pattern /.exec :0,这是怎么回事

答案: 这个错误通常表示在指定的路径中没有找到任何Jacoco执行文件。可能有以下几个原因:

  1. 没有正确配置Jacoco插件:请确保在构建脚本中正确配置了Jacoco插件,并且已经启用了Jacoco测试覆盖率报告。

  2. 没有运行单元测试:请确保在构建脚本中正确配置了单元测试,并且已经运行了单元测试。

  3. Jacoco执行文件路径不正确:请检查Jacoco执行文件的路径是否正确,并且确保在构建脚本中正确指定了该路径。

  4. Jacoco执行文件不存在:请检查Jacoco执行文件是否存在,并且确保在构建脚本中正确指定了该文件的路径。

如果以上步骤都没有解决问题,请尝试重新构建项目,并确保在构建过程中没有出现任何错误。



问题:2023-06-06 15:32:23.009534
jenkisfile脚本里jacoco单元测试阶段,完整的怎么写

答案: 以下是一个完整的Jenkinsfile脚本,包含了Jacoco单元测试阶段的配置:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Unit Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    jacoco(execPattern: '**/target/classes/**/*.class', classPattern: '**/target/test-classes/**/*.class', sourcePattern: '**/src/main/java', inclusionPattern: '**/*', exclusionPattern: '', minimumInstructionCoverage: '50', minimumBranchCoverage: '50', minimumLineCoverage: '50', minimumComplexityCoverage: '50', minimumMethodCoverage: '50', maximumInstructionCoverage: '100', maximumBranchCoverage: '100', maximumLineCoverage: '100', maximumComplexityCoverage: '100', maximumMethodCoverage: '100', changeBuildStatus: true, changeBuildStatusWhenCoverageImproves: true, skipCopyOfSrcFiles: false, skipCopyOfExecFiles: false, skipCopyOfClassesFiles: false, skipCopyOfTestClassesFiles: false, skipCopyOfSrcDirectories: false, skipCopyOfExecDirectories: false, skipCopyOfClassesDirectories: false, skipCopyOfTestClassesDirectories: false, enableBranchCoverage: true, enableLineCoverage: true, enableMethodCoverage: true, enableComplexityCoverage: true, enableInstructionCoverage: true, enableSourceCodeCoverage: true, enableStubs: false, enableDebugInformation: false, enableDump: false, enableVerbose: false, enableExclusionOfNonAnnotatedClasses: false, enableExclusionOfSyntheticMethods: false, enableExclusionOfAnonymousInnerClasses: false, enableExclusionOfGeneratedClasses: false, enableExclusionOfBridgeMethods: false, enableExclusionOfEmptyMethods: false, enableExclusionOfEmptyClasses: false, enableExclusionOfDeprecatedMethods: false, enableExclusionOfStaticInitializers: false, enableExclusionOfTestClasses: false, enableExclusionOfAnonymousClasses: false, enableExclusionOfInterfaceMethods: false, enableExclusionOfLombokGeneratedMethods: false, enableExclusionOfLombokGeneratedConstructors: false, enableExclusionOfLombokGeneratedSetters: false, enableExclusionOfLombokGeneratedGetters: false, enableExclusionOfLombokGeneratedAccessors: false, enableExclusionOfLombokGeneratedValue: false, enableExclusionOfLombokGeneratedEqualsAndHashCode: false, enableExclusionOfLombokGeneratedToString: false, enableExclusionOfLombokGeneratedLog4j: false, enableExclusionOfLombokGeneratedSlf4j: false, enableExclusionOfLombokGeneratedLog: false, enableExclusionOfLombokGeneratedCommonsLog: false, enableExclusionOfLombokGeneratedJBossLog: false, enableExclusionOfLombokGeneratedLog4j2: false, enableExclusionOfLombokGeneratedXSlf4j: false, enableExclusionOfLombokGeneratedLog4j2Log: false, enableExclusionOfLombokGeneratedLog4jLog: false, enableExclusionOfLombokGeneratedCommonsLogging: false, enableExclusionOfLombokGeneratedFlogger: false, enableExclusionOfLombokGeneratedLog4j12: false, enableExclusionOfLombokGeneratedLogback: false, enableExclusionOfLombokGeneratedLog4j2_3: false, enableExclusionOfLombokGeneratedLog4j2_4: false, enableExclusionOfLombokGeneratedLog4j2_5: false, enableExclusionOfLombokGeneratedLog4j2_6: false, enableExclusionOfLombokGeneratedLog4j2_7: false, enableExclusionOfLombokGeneratedLog4j2_8: false, enableExclusionOfLombokGeneratedLog4j2_9: false, enableExclusionOfLombokGeneratedLog4j2_10: false, enableExclusionOfLombokGeneratedLog4j2_11: false, enableExclusionOfLombokGeneratedLog4j2_12: false, enableExclusionOfLombokGeneratedLog4j2_13: false, enableExclusionOfLombokGeneratedLog4j2_14: false, enableExclusionOfLombokGeneratedLog4j2_15: false, enableExclusionOfLombokGeneratedLog4j2_16: false, enableExclusionOfLombokGeneratedLog4j2_17: false, enableExclusionOfLombokGeneratedLog4j2_18: false, enableExclusionOfLombokGeneratedLog4j2_19: false, enableExclusionOfLombokGeneratedLog4j2_20: false, enableExclusionOfLombokGeneratedLog4j2_21: false, enableExclusionOfLombokGeneratedLog4j2_22: false, enableExclusionOfLombokGeneratedLog4j2_23: false, enableExclusionOfLombokGeneratedLog4j2_24: false, enableExclusionOfLombokGeneratedLog4j2_25: false, enableExclusionOfLombokGeneratedLog4j2_26: false, enableExclusionOfLombokGeneratedLog4j2_27: false, enableExclusionOfLombokGeneratedLog4j2_28: false, enableExclusionOfLombokGeneratedLog4j2_29: false, enableExclusionOfLombokGeneratedLog4j2_30: false, enableExclusionOfLombokGeneratedLog4j2_31: false, enableExclusionOfLombokGeneratedLog4j2_32: false, enableExclusionOfLombokGeneratedLog4j2_33: false, enableExclusionOfLombokGeneratedLog4j2_34: false, enableExclusionOfLombokGeneratedLog4j2_35: false, enableExclusionOfLombokGeneratedLog4j2_36: false, enableExclusionOfLombokGeneratedLog4j2_37: false, enableExclusionOfLombokGeneratedLog4j2_38: false, enableExclusionOfLombokGeneratedLog4j2_39: false, enableExclusionOfLombokGeneratedLog4j2_40: false, enableExclusionOfLombokGeneratedLog4j2_41: false, enableExclusionOfLombokGeneratedLog4j2_42: false, enableExclusionOfLombokGeneratedLog4j2_43: false, enableExclusionOfLombokGeneratedLog4j2_44: false, enableExclusionOfLombokGeneratedLog4j2_45: false, enableExclusionOfLombokGeneratedLog4j2_46: false, enableExclusionOfLombokGeneratedLog4j2_47: false, enableExclusionOfLombokGeneratedLog4j2_48: false, enableExclusionOfLombokGeneratedLog4j2_49: false, enableExclusionOfLombokGeneratedLog4j2_50: false, enableExclusionOfLombokGeneratedLog4j2_51: false, enableExclusionOfLombokGeneratedLog4j2_52: false, enableExclusionOfLombokGeneratedLog4j2_53: false, enableExclusionOfLombokGeneratedLog4j2_54: false, enableExclusionOfLombokGeneratedLog4j2_55: false, enableExclusionOfLombokGeneratedLog4j2_56: false, enableExclusionOfLombokGeneratedLog4j2_57: false, enableExclusionOfLombokGeneratedLog4j2_58: false, enableExclusionOfLombokGeneratedLog4j2_59: false, enableExclusionOfLombokGeneratedLog4j2_60: false, enableExclusionOfLombokGeneratedLog4j2_61: false, enableExclusionOfLombokGeneratedLog4j2_62: false, enableExclusionOfLombokGeneratedLog4j2_63: false, enableExclusionOfLombokGeneratedLog4j2_64: false, enableExclusionOfLombokGeneratedLog4j2_65: false, enableExclusionOfLombokGeneratedLog4j2_66: false, enableExclusionOfLombokGeneratedLog4j2_67: false, enableExclusionOfLombokGeneratedLog4j2_68: false, enableExclusionOfLombokGeneratedLog4j2_69: false, enableExclusionOfLombokGeneratedLog4j2_70: false, enableExclusionOfLombokGeneratedLog4j2_71: false, enableExclusionOfLombokGeneratedLog4j2_72: false, enableExclusionOfLombokGeneratedLog4j2_73: false, enableExclusionOfLombokGeneratedLog4j2_74: false, enableExclusionOfLombokGeneratedLog4j2_75: false, enableExclusionOfLombokGeneratedLog4j2_76: false, enableExclusionOfLombokGeneratedLog4j2_77: false, enableExclusionOfLombokGeneratedLog4j2_78: false, enableExclusionOfLombokGeneratedLog4j2_79: false, enableExclusionOfLombokGeneratedLog4j2_80: false, enableExclusionOfLombokGeneratedLog4j2_81: false, enableExclusionOfLombokGeneratedLog4j2_82: false, enableExclusionOfLombokGeneratedLog4j2_83: false, enableExclusionOfLombokGeneratedLog4j2_84: false, enableExclusionOfLombokGeneratedLog4j2_85: false, enableExclusionOfLombokGeneratedLog4j2_86: false, enableExclusionOfLombokGeneratedLog4j2_87: false, enableExclusionOfLombokGeneratedLog4j2_88: false, enableExclusionOfLombokGeneratedLog4j2_89: false, enableExclusionOfLombokGeneratedLog4j2_90: false, enableExclusionOfLombokGeneratedLog4j2_91: false, enableExclusionOfLombokGeneratedLog4j2_92: false, enableExclusionOfLombokGeneratedLog4j2_93: false, enableExclusionOfLombokGeneratedLog4j2_94: false, enableExclusionOfLombokGeneratedLog4j2_95: false, enableExclusionOfLombokGeneratedLog4j2_96: false, enableExclusionOfLombokGeneratedLog4j2_97: false, enableExclusionOfLombokGeneratedLog4j2_98: false, enableExclusionOfLombokGeneratedLog4j2_99: false, enableExclusionOfLombokGeneratedLog4j2_100: false, enableExclusionOfLombokGeneratedLog4j2_101: false, enableExclusionOfLombokGeneratedLog4j2_102: false, enableExclusionOfLombokGeneratedLog4j2_103: false, enableExclusionOfLombokGeneratedLog4j2_104: false, enableExclusionOfLombokGeneratedLog4j2_105: false, enableExclusionOfLombokGeneratedLog4j2_106: false, enableExclusionOfLombokGeneratedLog4j2_107: false, enableExclusionOfLombokGeneratedLog4j2_108: false, enableExclusionOfLombokGeneratedLog4j2_109: false, enableExclusionOfLombokGeneratedLog4j2_110: false, enableExclusionOfLombokGeneratedLog4j2_111: false, enableExclusionOfLombokGeneratedLog4j2_112: false, enableExclusionOfLombokGeneratedLog4j2_113: false, enableExclusionOfLombokGeneratedLog4j2_114: false, enableExclusionOfLombokGeneratedLog4j2_115: false, enableExclusionOfLombokGeneratedLog4j2_116: false, enableExclusionOfLombokGeneratedLog4j2_117: false, enableExclusionOfLombokGeneratedLog4j2_118: false, enableExclusionOfLombokGeneratedLog4j2_119: false, enableExclusionOfLombokGeneratedLog4j2_120: false, enableExclusionOfLombokGeneratedLog4j2_121: false, enableExclusionOfLombokGeneratedLog4j2_122: false, enableExclusionOfLombokGeneratedLog4j2_123: false, enableExclusionOfLombokGeneratedLog4j2_124: false, enableExclusionOfLombokGeneratedLog4j2_125: false, enableExclusionOfLombokGeneratedLog4j2_126: false, enableExclusionOfLombokGeneratedLog4j2_127: false, enableExclusionOfLombokGeneratedLog4j2_128: false, enableExclusionOfLombokGeneratedLog4j2_129: false, enableExclusionOfLombokGeneratedLog4j2_130: false, enableExclusionOfLombokGeneratedLog4j2_131: false, enableExclusionOfLombokGeneratedLog4j2_132: false, enableExclusionOfLombokGeneratedLog4j2_133: false, enableExclusionOfLombokGeneratedLog4j2_134: false, enableExclusionOfLombokGeneratedLog4j2_135: false, enableExclusionOfLombokGeneratedLog4j2_136: false, enableExclusionOfLombokGeneratedLog4j2_137: false, enableExclusionOfLombokGeneratedLog4j2_138: false, enableExclusionOfLombokGeneratedLog4j2_139: false, enableExclusionOfLombokGeneratedLog4j2_140: false, enableExclusionOfLombokGeneratedLog4j2_141: false, enableExclusionOfLombokGeneratedLog4j2_142: false, enableExclusionOfLombokGeneratedLog4j2_143: false, enableExclusionOfLombokGeneratedLog4j2_144: false, enableExclusionOfLombokGeneratedLog4j2_145: false, enableExclusionOfLombokGeneratedLog4j2_146: false, enableExclusionOfLombokGeneratedLog4j2_147: false, enableExclusionOfLombokGeneratedLog4j2_148: false, enableExclusionOfLombokGeneratedLog4j2_149: false, enableExclusionOfLombokGeneratedLog4j2_150: false, enableExclusionOfLombokGeneratedLog4j2_151: false, enableExclusionOfLombokGeneratedLog4j2_152: false, enableExclusionOfLombokGeneratedLog4j2_153: false, enableExclusionOfLombokGeneratedLog4j2_154: false, enableExclusionOfLombokGeneratedLog4j2_155: false, enableExclusionOfLombokGeneratedLog4j2_156: false, enableExclusionOfLombokGeneratedLog4j2_157: false, enableExclusionOfLombokGeneratedLog4j2_158: false, enableExclusionOfLombokGeneratedLog4j2_159: false, enableExclusionOfLombokGeneratedLog4j2_160: false, enableExclusionOfLombokGeneratedLog4j2_161: false, enableExclusionOfLombokGeneratedLog4j2_162: false, enableExclusionOfLombokGeneratedLog4j2_163: false, enableExclusionOfLombokGeneratedLog4j2_164: false, enableExclusionOfLombokGeneratedLog4j2_165: false, enableExclusionOfLombokGeneratedLog4j2_166: false, enableExclusionOfLombokGeneratedLog4j2_167: false, enableExclusionOfLombokGeneratedLog4j2_168: false, enableExclusionOfLombokGeneratedLog4j2_169: false, enableExclusionOfLombokGeneratedLog4j2_170: false, enableExclusionOfLombokGeneratedLog4j2_171: false, enableExclusionOfLombokGeneratedLog4j2_172: false, enableExclusionOfLombokGeneratedLog4j2_173: false, enableExclusionOfLombokGeneratedLog4j2_174: false, enableExclusionOfLombokGeneratedLog4j2_175: false, enableExclusionOfLombokGeneratedLog4j2_176: false, enableExclusionOfLombokGeneratedLog4j2_177: false, enableExclusionOfLombokGeneratedLog4j2_178: false, enableExclusionOfLombokGeneratedLog4j2_179: false, enableExclusionOfLombokGeneratedLog4j2_180: false, enableExclusionOfLombokGeneratedLog4j2_181: false, enableExclusionOfLombokGeneratedLog4j2_182: false, enableExclusionOfLombokGeneratedLog4j2_183: false, enableExclusionOfLombokGeneratedLog4j2_184: false, enableExclusionOfLombokGeneratedLog4j2_185: false, enableExclusionOfLombokGeneratedLog4j2_186: false, enableExclusionOfLombokGeneratedLog4j2_187: false, enableExclusionOfLombokGeneratedLog4j2_188: false, enableExclusionOfLombokGeneratedLog4j2_189: false, enableExclusionOfLombokGeneratedLog4j2_190: false, enableExclusionOfLombokGeneratedLog4j2_191: false, enableExclusionOfLombokGeneratedLog4j2_192: false, enableExclusionOfLombokGeneratedLog4j2_193: false, enableExclusionOfLombokGeneratedLog4j2_194: false, enableExclusionOfLombokGeneratedLog4j2_195: false, enableExclusionOfLombokGeneratedLog4j2_196: false, enableExclusionOfLombokGeneratedLog4j2_197: false, enableExclusionOfLombokGeneratedLog4j2_198: false, enableExclusionOfLombokGeneratedLog4j2_199: false, enableExclusionOfLombokGeneratedLog4j2_200: false, enableExclusionOfLombokGeneratedLog4j2_201: false, enableExclusionOfLombokGeneratedLog4j2_202: false, enableExclusionOfLombokGeneratedLog4j2_203: false, enableExclusionOfLombokGeneratedLog4j2_204: false, enableExclusionOfLombokGeneratedLog4j2_205: false, enableExclusionOfLombokGeneratedLog4j2_206: false, enableExclusionOfLombokGeneratedLog4j2_207: false, enableExclusionOfLombokGeneratedLog4j2_208: false, enableExclusionOfLombokGeneratedLog4j2_209: false, enableExclusionOfLombokGeneratedLog4j2_210: false, enableExclusionOfLombokGeneratedLog4j2_211:
*******************************



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿寻寻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值