【问题标题】:How to find unnecessary jars in a project如何在项目中找到不必要的 jar
【发布时间】:2014-01-19 16:36:24
【问题描述】:

我的项目中有一些罐子。我想知道这些罐子是如何使用的,或者如果我移除它们会有什么影响?

【问题讨论】:

标签: java maven jar


【解决方案1】:

您可以使用loosejar 来实现它。

它是一个简单的 Java 代理,可用于发现不必要的 jars 位于应用程序类路径上。 它按类加载器 JVM 执行 堆分析并显示其结果。可以安全使用loosejar 在开发、QA、UAT 甚至生产过程中,因为它不会修改 JVM 的状态,并且不会增加任何开销。

使用方法:

  1. 启动您的应用程序或应用程序服务器 -javaagent:loosejar.jar 标志(loosejar.jar 显然应该指向实际 jar 的正确路径)

  2. 运行您的应用程序以确保加载类 进入JVM。

  3. 通过JMX控制台获取loosejar分析结果(打开jconsole运行 com.googlecode.loosejar.LooseJarMBean#summary() 在 MBeans 文件夹中)或 在应用程序关闭时(通过常规控制台日志)。

【讨论】:

    【解决方案2】:

    您正在使用 Maven,因此您可以使用 Maven 的功能来查看您需要哪些 jar。在项目的根目录中运行以下命令:

    mvn dependency:analyze
    

    您会看到 [WARNING] Unused declared dependencies found: 行,其中包含您实际上不需要的依赖项列表。

    【讨论】:

    • 我需要离线运行我的项目并使用命令 mvn -o dependency:analyze 给出构建错误。
    • 如果您之前能够构建它,那应该没有任何区别。错误是什么?
    • [INFO] 构建 POM 时出错(可能不是此项目的 POM)。项目 ID:org.apache.maven.plugins:maven-dependency-plugin 原因:在存储库中找不到 POM 'org.apache.maven.plugins:maven-dependency-plugin':系统处于脱机状态。 org.apache.maven.plugins:maven-dependency-plugin:pom:2.0 用于项目 org.apache.maven.plugins:maven-dependency-plugin
    • 啊哈,看来你得上网让Maven下载maven-dependency-plugin了。
    【解决方案3】:

    尝试使用 UCDetector。看这里UCDetector

    【讨论】:

      猜你喜欢
      • 2010-11-03
      • 2012-03-13
      • 1970-01-01
      • 2015-12-17
      • 2011-07-30
      • 2012-10-08
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      相关资源
      最近更新 更多