【问题标题】:How To Check Dependencies Between Jar Files?如何检查 Jar 文件之间的依赖关系?
【发布时间】:2010-10-21 15:56:59
【问题描述】:

我最近接受了一个用 JSF 编写的 Web 系统的支持和编程。代码有点凌乱和冗余,是的,​​不存在文档。

系统有40多个jar库,大部分都是因为老版本和测试而冗余的。要删除一个jar,我必须检查它没有在代码中导入,所以我在代码中搜索了jar导入路径(我使用的是IntelliJ IDE),确保它没有被使用,然后将其删除。

但是,在编译代码之后,在测试过程中出现了一些运行时错误。我发现我删除了一些其他现有 jar 使用的 jar。

问题,在删除一个 jar 之前,我如何确保它没有被另一个 jar/java 类使用?

尽管 jars 已经编译了类,但编译后的类确实具有所需库的导入路径。但我不能用 IntelliJ 搜索它们(不在 jars 文件中搜索)。

我现在做的唯一方法是在每次删除 jar 时测试系统,看看我是否可以让它崩溃!由于要测试的功能数量庞大,这完全不是一个简单的方法。

我希望有一个工具可以提交多个 java 文件/jar,并显示它们之间的依赖关系。

【问题讨论】:

    标签: java jar dependencies redundancy


    【解决方案1】:

    我知道 JBoss 项目中有一个名为 JBoss TattleTale 的工具,可能值得一看:

    http://www.jboss.org/tattletale

    【讨论】:

    • +1 这个工具仍然很新,但提供了一些很好的信息。它甚至可以显示 jar 文件中的类之间的依赖关系。可惜它不适用于 maven。
    • 正是我需要的!我对其进行了测试,它为我提供了有关 jar 依赖项等的酷报告。谢谢!
    • 很高兴我能帮上忙。我认为它使用 GraphViz 来可视化图表,有一些方法可以对其进行微调以使其看起来更好。
    【解决方案2】:

    JDepend 将为您分析任意数量的 JAR、类文件等的依赖关系。将它报告的包与这些 JAR 相关联应该是一个微不足道的额外步骤。

    【讨论】:

    • 我也测试了 JDepend,但是在查看依赖关系时它比 jboss tattletale 复杂得多。但是有一个优势,它也显示了类之间的依赖关系,而不仅仅是 jars。谢谢
    【解决方案3】:

    为什么不将 Maven 用于您的项目?这将帮助您管理依赖项。

    【讨论】:

    【解决方案4】:

    我也找到了JarAnalyzer,不过好像没有维护了。

    【讨论】:

      【解决方案5】:

      嗯,现在是 2013 年,所以我不确定这个工具在 2009 年是否很棒。 刚用过,发现很有用: 类依赖分析器 (CDA) (V1.14) http://www.dependency-analyzer.org/ 这个工具有一个图形用户界面(Swing?)。 添加 lib jars 和 Java 类后,它将显示 Class/Package/Container(jar) 级别的依赖关系。 它也可以显示家属。 所以很容易找到依赖的jar和依赖的jar。

      【讨论】:

        【解决方案6】:

        【讨论】:

          猜你喜欢
          • 2021-03-17
          • 2017-06-07
          • 2013-09-18
          • 2023-03-16
          • 1970-01-01
          • 1970-01-01
          • 2014-07-20
          • 2021-09-01
          相关资源
          最近更新 更多