Java 8 的循环依赖分析 - 用于自动构建
Posted
技术标签:
【中文标题】Java 8 的循环依赖分析 - 用于自动构建【英文标题】:Cyclic dependency analysis for Java 8 - for use in an automated build 【发布时间】:2015-07-27 11:06:32 【问题描述】:我将处理一个项目,该项目使用 JDepend 自动生成循环包依赖关系报告,作为我们 CI 构建的一部分。 (我主要对包级别的依赖关系感兴趣,所以我一直在使用 XSLT 的精简版本来获得更集中的报告——不过,它是普通的 JDepend。)
但是,我们即将将该项目迁移到 Java 8,我发现 JDepend 不适用于使用 JDK 1.8 编译器编译的代码。 JDepend 似乎不再被积极更新。
我正在尝试寻找替代品:
适用于 JDK 1.8 编译的类和/或 jar。 报告包和/或 jar 级别的循环依赖关系。 可以从 Ant 自动化(命令行可执行文件就可以了)。 生成可以从项目主页链接并在浏览器中打开的报告(例如 html 或纯文本输出 - 不是桌面应用程序)。 还(最好)生成 - 或者可以配置/调整以生成 - 仅针对循环依赖项的集中报告(如果您修改 XSLT,JDepend 可以)。【问题讨论】:
好的,所以...我完全错过了这个事实 - docs.oracle.com/javase/8/docs/technotes/tools/windows/… - 存在于 JDK 1.8 工具集中。 (现在就试试吧。) 会喜欢一个也可能导致构建失败的 maven 工具... 是的,如果包和/或 jar 之间也存在任何循环依赖关系,我喜欢一个简单的工具来失败构建(或者可能是单元测试)。 您也许可以编写一个单元测试,将 jdeps.exe 的当前输出与代表可接受依赖关系的某个早期版本进行比较。如果依赖项发生更改,测试将失败 - 此时您可以修复依赖项或更新测试以反映新的依赖项仍然可以接受。 (有点骇人听闻,但是...) 【参考方案1】:Java 8 在/bin
中包含jdeps.exe
。虽然这并没有显式地调用循环依赖项,但它确实显示了项目包的所有依赖项。已经足够了。
【讨论】:
以上是关于Java 8 的循环依赖分析 - 用于自动构建的主要内容,如果未能解决你的问题,请参考以下文章