使用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
總結
以上是生活随笔為你收集整理的使用Classycle验证类/包依赖关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JBoss Fuse 6.2发布–指导如
- 下一篇: 基于Rx-netty和Karyon2的云