专业的JAVA编程教程与资源

网站首页 > java教程 正文

Ktlint让你写出统一规范的代码 linux命令history怎么调用历史

temp10 2024-12-16 16:12:57 java教程 11 ℃ 0 评论

你曾经是否为代码不规范而发愁,别人提交的代码,每个文件都要格式化,一不留神,按了下格式化快捷键,整个文件每行都改动了。每次都说忘了,你还一点办法都没有。

之前用java开发Android应用时使用的是CheckStyle,现在官方将Kotlin作为第一开发语言后,用CheckStyle已经不行了。此时我们可以用Ktlint来检测Kotlin代码的规范性。

Ktlint让你写出统一规范的代码 linux命令history怎么调用历史

Ktlint的配置

先在项目的gradle中配置ktlint的脚本

buildscript {
  repositories {
    google()
    mavenCentral()
    maven { url 'https://plugins.gradle.org/m2/' }
  }
  dependencies {
    classpath "com.android.tools.build:gradle:7.0.4"
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
    classpath "org.jlleitschuh.gradle:ktlint-gradle:10.2.0"
  }
}

在subprojects中进行基本配置

subprojects {
  apply plugin: 'org.jlleitschuh.gradle.ktlint'
  ktlint {
    version = '0.43.2'
    debug = true
    verbose = true
    android = false
    outputToConsole = true
    outputColorName = "RED"
    ignoreFailures = false
    disabledRules = ["import-ordering", "no-wildcard-imports"]
    baseline = file("ktlint-baseline.xml")
    reporters {
      reporter "html"
      reporter "json"
    }
    filter {
      exclude("**/generated/**")
      include("**/kotlin/**")
    }
  }
}
  • 版本号是0.43.2,
  • ignoreFailures = false是当有不规范的地方直接报错,
  • disabledRules是忽略规则,如忽略导包顺序,忽略导入*包,
  • reporters是配置报告文件,如生成html,json文件等
  • filter是排除目录和包含目录

执行检测


配置完成后,双击task就可以执行检测了,如双击ktlintMainSourceSetCheck,会检测所有不规范的代码,并生成报告文件。双击ktlintMainSourceSetFormat,会自动将不规范的代码进行更正。

除了手动执行外,我们也可以依赖打包task进行自动执行检测。例如我们依赖assembleDebug任务,在调试运行前先执行代码检测,若有不规划的代码,直接报错中止打包,配置如下

project.tasks.whenTaskAdded { Task task ->
  if (task.name.matches("assembleDebug")) {
    task.dependsOn("ktlintMainSourceSetCheck")
    task.mustRunAfter("ktlintMainSourceSetCheck")
  }
}

如果不想每次手动修改,这里可以使用ktlintMainSourceSetFormat自动格式化。

除了依赖打包task外,还可以依赖git命令回调,在git提交代码前,先检测代码,若代码不规范,就禁止提交代码。这样就可以强制要求组员规范编码,统一格式了。

查看日志报告

检测完,会将所有不规范的地方生成报告文件,进行记录。报告格式有txt,xml,html等等。如上的html页面显示MainActivity有3处需要修改的地方。

  • 第6行第1列有无用的导包
  • 第11行第1列缩进空格应该是8个,实际使用了6个
  • 第16行第1列有不必要的空行

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表