是否有任何插件或功能可以确定哪些 JAR 在应用程序或项目中未使用(在给定的项目生命周期中)

Is there any plugin or feature that determines which JARs are unused in an application or a project (in a given project life cycle)

一个典型的 Java 项目有 30-40 个 jar 文件。 Maven 解决依赖关系。有时不再需要某些功能。但是没有人会因为害怕破坏代码或应用程序而接触 JAR。

例如:使用 JAXB 的 jersey (JAX-RS) 实现有许多解决方法,不同的 Maven 配置。

不同的开发人员有时会采用不同的方法来完成同一件事。全部正确。我同意他们应该讨论出来。但问题是未使用的 JAR 会使构建包变重。

有没有一个插件可以映射(使用反射)并检查一次(一个项目生命周期)并标记不需要或未使用的 JAR。这将使用 java 反射,可能会变慢,但这是必需的。 有什么解决办法吗?

Maven 使用依赖插件帮助找出未使用的依赖项。

mvn dependency:analyze

它显示未使用的依赖项如下

[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ mymaven ---
[WARNING] Unused declared dependencies found:
[WARNING]    org.apache.commons:commons-lang3:jar:3.0:compile