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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值