如何为 Java 项目配置 Commitlint 和 Husky?

Suj*_*ith 5 java spring-boot devops

我在 Node.js 项目中使用CommitlintHusky 。如何在 Spring Boot 项目中使用相同的概念?我没有获得足够的线索。

这适用于带有pom.xml的 Java/Spring Boot 项目。

小智 -3

将spotless 与commitlint 结合起来用于Spring Boot 项目

Spotless是 Java(和其他语言)的代码格式化程序,与 Gradle 和 Maven 等构建工具集成,而commitlint是用于在 Git 存储库中检查提交消息的工具。它们在项目中扮演不同的角色,但它们当然可以一起使用,以在 Spring Boot 项目中强制执行代码风格和提交消息约定。

以下是有关如何在 Spring Boot 项目中配置每个项目的简要指南:

使用 Gradle 进行完美设置

  1. 将 Spotless 插件添加到您的 build.gradle 文件中:
plugins {
  id 'com.diffplug.spotless' version '5.14.2'
}
Run Code Online (Sandbox Code Playgroud)
  1. 配置一尘不染:
spotless {
  java {
    googleJavaFormat() // Use the Google Java Format
    target 'src/**/*.java' // Point to the Java source
  }
}
Run Code Online (Sandbox Code Playgroud)
  1. 要根据定义的规则格式化代码,您可以运行:
plugins {
  id 'com.diffplug.spotless' version '5.14.2'
}
Run Code Online (Sandbox Code Playgroud)
  1. 要检查您的代码是否符合定义的规则,您可以运行:
spotless {
  java {
    googleJavaFormat() // Use the Google Java Format
    target 'src/**/*.java' // Point to the Java source
  }
}
Run Code Online (Sandbox Code Playgroud)

Commitlint 设置

Spring Boot 项目中的 Commitlint 设置可以按照前面的消息中的描述来完成。这是一个快速回顾:

  1. 安装 Node.js 和 npm。
  2. 在项目根目录中初始化 package.json:
./gradlew spotlessApply
Run Code Online (Sandbox Code Playgroud)
  1. 安装 commitlint 和 Husky:
./gradlew spotlessCheck
Run Code Online (Sandbox Code Playgroud)
  1. 配置commitlint:
npm init -y 
Run Code Online (Sandbox Code Playgroud)
  1. 配置哈士奇:
npm install @commitlint/{config-conventional,cli} husky --save-dev
Run Code Online (Sandbox Code Playgroud)

两者结合

如果你想确保在提交代码之前所有检查都通过,你可以添加一个带有 Husky 的预提交钩子来运行./gradlew spotlessCheck。您可以这样做:

  1. 首先,安装 Husky 和 ​​lint-staged:
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
Run Code Online (Sandbox Code Playgroud)
  1. 在您的 中添加 lint-staged 配置package.json
npx husky install
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
Run Code Online (Sandbox Code Playgroud)
  1. 安装哈士奇挂钩:
npm install --save-dev husky lint-staged
Run Code Online (Sandbox Code Playgroud)
  1. 添加预提交和提交消息挂钩:
"lint-staged": {
  "*.java": [
    "./gradlew spotlessApply",
    "git add"
  ]
}
Run Code Online (Sandbox Code Playgroud)

此设置将运行 Spotless 来格式化您的 Java 文件并将它们添加到提交中。然后它将使用 commitlint 检查提交消息。如果这些步骤中的任何一个失败,提交将被中止。

  • 欢迎来到 Stack Overflow,maycon araujo!您的答案似乎可能是由人工智能(例如 ChatGPT)(全部或部分)编写的。请注意,[此处不允许发布 AI 生成的内容](//meta.stackoverflow.com/q/421831)。如果您使用人工智能工具来协助回答任何问题,我建议您将其删除。我们衷心希望您能成为我们社区的一员,并在未来贡献*您自己的*优质帖子。谢谢! (2认同)
  • **读者应该仔细、批判性地审查这个答案,因为人工智能生成的信息通常包含基本错误和错误信息。**如果您发现质量问题和/或有理由相信这个答案是由人工智能生成的,请留下相应的反馈。 (2认同)