konsist

konsist

确保Kotlin项目代码一致性的静态分析工具

Konsist是一款专为Kotlin项目开发的静态代码分析工具,通过强制执行一致的代码结构和架构来保障项目质量。该工具采用单元测试形式编写检查规则,支持通用Kotlin语法以及Android、Spring等框架特定检查。Konsist提供简洁的API,用于查询和验证类、函数、属性等代码元素,并支持架构层依赖分析。对于大型Kotlin项目的代码质量管理,Konsist是一个高效的辅助工具。

KonsistKotlin

Konsist

Kotlin 检查工作流 <img src="https://img.shields.io/maven-central/v/com.lemonappdev/konsist?label=Release"/>

Konsist 是一个代码检查工具,通过强制实施一致的代码结构和统一的架构来保证 Kotlin 项目的一致性。Konsist 的检查规则以单元测试的形式编写(JUnit / Kotest)。

依赖项

// Gradle Kotlin: testImplementation("com.lemonappdev:konsist:0.15.1") // Gradle Groovy: testImplementation "com.lemonappdev:konsist:0.15.1" // Maven: <dependency> <groupId>com.lemonappdev</groupId> <artifactId>konsist</artifactId> <version>0.15.1</version> <scope>test</scope> </dependency>

查看 Konsist 文档 了解更多关于 Konsist 的信息,并查看入门指南

示例

Konsist API 反映了 Kotlin 代码的结构。所有声明,如类、函数和属性,都可以通过 Konsist API 进行查询和验证。请看以下几个例子。

通用 Kotlin 检查

@Test fun `以'UseCase'为后缀的类应该位于'usecase'包中`() { Konsist.scopeFromProject() .classes() .withNameEndingWith("UseCase") .assertTrue { it.resideInPackage("..usecase..") } }

Android 特定检查

@Test fun `继承'ViewModel'的类应该以'ViewModel'为后缀`() { Konsist.scopeFromProject() .classes() .withAllParentsOf(ViewModel::class) .assertTrue { it.name.endsWith("ViewModel") } }

Spring 特定检查

@Test fun `带有'Repository'注解的接口应该以'Repository'为后缀`() { Konsist .scopeFromProject() .interfaces() .withAllAnnotationsOf(Repository::class) .assertTrue { it.hasNameEndingWith("Repository") } }

架构层检查

@Test fun `清洁架构层具有正确的依赖关系`() { Konsist .scopeFromProduction() .assertArchitecture { // 定义层 val domain = Layer("Domain", "com.myapp.domain..") val presentation = Layer("Presentation", "com.myapp.presentation..") val data = Layer("Data", "com.myapp.data..") // 定义架构断言 domain.dependsOnNothing() presentation.dependsOn(domain) data.dependsOn(domain) } }

查看我们的代码片段页面,获取更多示例!

文章

阅读 Konsist 文章,获取有关维护项目一致性的最佳实践和策略的宝贵见解。

Star 历史

Star 历史图表

社区与支持

在 kotlinlang Slack 工作空间的 #konsist 频道留言(首选)或开启 GitHub 讨论

贡献

请务必查看 Konsist 的贡献指南,了解如何支持该项目。

许可证

Konsist 根据 Apache License(版本 2.0)的条款分发。有关详细信息,请参阅 LICENSE.md

编辑推荐精选

Pixmax

Pixmax

一站式AI短剧创作平台

Pixmax专注打造下一代“ AI 视觉创作引擎”,整合行业顶尖 AI 大模型、工工业级精准控制及企业级协同管理功能,是全方位的 AI 内容创作平台。

豆包

豆包

字节跳动旗下 AI 智能助手

字节跳动旗下 AI 智能助手

GPT Plus|Pro充值

GPT Plus|Pro充值

GPT充值

支持 ChatGPT Plus / Pro 充值服务,支付便捷,自动发货,售后可查。

GPT Image 2中文站

GPT Image 2中文站

AI 图片生成平台

GPT Image 2 是面向用户的 AI 图片生成平台,支持文生图、图生图及多模型创意工作流。

Vecbase

Vecbase

你的AI Agent团队

Vecbase 是专为 AI 团队打造的智能工作空间,将数据管理、模型协作与知识沉淀整合于一处。算法、产品与业务在同一平台无缝协同,让从数据到 AI 应用的落地更快一步。

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

下拉加载更多