当前位置: 首页 > 工具软件 > Classycle > 使用案例 >

使用Classycle验证类/包依赖关系

麹飞航
2023-12-01

Classycle是一个非常好的类和包依赖项的分析器和依赖项检查器。

它使您可以定义程序包组(组件,层),并表达不需要的依赖性,例如周期或特定程序包之间的依赖性。 例如,您可以指定不希望包周期,也不需要com.foo.api。*上com.foo.domain。*的依赖关系。 全部使用非常人性化,简洁的格式

然后启动分析器(它带有Ant任务和独立的命令行工具),它会生成包含违规的报告。

还有许多其他工具:JDepend,Sonar,JArchitect等。 那为什么要Classycle呢?

  • 它是免费的(BSD许可证)。
  • 它很快。
  • 它功能强大且富有表现力。 规则仅包含几行易于阅读的文本。
  • 它与构建工具很好地集成在一起。 对于每个构建,我们都将其作为构建脚本的一部分运行。 实际上,这只是另一个自动化测试。 由于这个项目结构可能是我迄今为止使用过的最干净的结构。

Gradle插件

有了Ant任务,Classycle很容易与Gradle集成,但有一个警告:正式版本不在Maven Central中,唯一存在的版本不包含Ant任务。

Gradle本身通过脚本插件使用Classycle,该插件嵌入在项目结构中的某个位置。 他们在自己的存储库中发布了Classycle,但它是不支持Java 8的较旧版本。

受此启发, 我们编写了自己的插件,并以最小的努力使每个人都可以使用它。 它可以在Gradle插件门户网站GitHub上获得

为了使用它,您需要做的是:

  • 将插件添加到您的项目中:
    plugins { id "pl.squirrel.classycle" version "1.1" }
  • 为要包含在src / test / resources / classycle-$ {sourceSet.name} .txt中的每个源集创建Classycle定义文件:
    show allResults
    
    {package} = com.example
    check absenceOfPackageCycles > 1 in ${package}.*
  • 恭喜,这就是将Classycle与Gradle构建集成在一起的全部步骤! 现在您有以下任务:
    # For each source set that has the dependency definition file:
    classycleMain, classycleTest, ... 
    
    # Analyze all source steps in one hit:
    classycle
    
    # Also part of the check task:
    check

有关更多信息,请参见插件门户GitHub 。 验证愉快!

翻译自: https://www.javacodegeeks.com/2015/05/validating-classpackage-dependencies-with-classycle.html

 类似资料: