Mat*_*kas 9 java eclipse maven
我正在使用Eclipse中的Java项目,使用Maven来构建和管理依赖项.该项目分布在5个Eclipse项目中,其中一个是父POM.我正在开发一个服务器实现,它基于另一个团队实现的更复杂的服务器.所以我的工作基于他们已有的代码和POM文件,现在在这些Eclipse项目的POM中有许多不必要的依赖.
相对而言,我是Maven初学者,但我熟悉这个命令:
mvn dependency:analyze
Run Code Online (Sandbox Code Playgroud)
当我使用Eclipse Maven插件运行此命令时,我将获得一个很长的"Unused声明的依赖项"列表,但是当我尝试删除其中的一些时,我的程序将会破坏,有时会以神秘的方式.
是否有一种普遍接受的最佳实践方法来处理这个问题?或者我是否已经辞职,逐个删除这些(可能)未使用的依赖项,确保在删除每个依赖项后没有任何内容被破坏?
-verbose:class您可以尝试在打开java 选项的情况下运行代码。这将生成输出,显示每个类从何处(哪个 jar 文件)加载。(注意:在 Sun JRE 上,这会写入标准输出;我认为在 IBM JRE 上,它会写入标准错误。)以下是输出示例:
[Loaded junit.framework.AssertionFailedError from file:/D:/Documents%20and%20Settings/mike/.m2/repository/junit/junit/3.8.2/junit-3.8.2.jar]
[Loaded junit.framework.ComparisonFailure from file:/D:/Documents%20and%20Settings/mike/.m2/repository/junit/junit/3.8.2/junit-3.8.2.jar]
[Loaded org.jmock.core.SelfDescribing from file:/D:/Documents%20and%20Settings/mike/.m2/repository/jmock/jmock/1.2.0/jmock-1.2.0.jar]
[Loaded org.apache.log4j.spi.Configurator from file:/D:/Documents%20and%20Settings/mike/.m2/repository/log4j/log4j/1.2.9/log4j-1.2.9.jar]
[Loaded org.apache.log4j.xml.DOMConfigurator from file:/D:/Documents%20and%20Settings/mike/.m2/repository/log4j/log4j/1.2.9/log4j-1.2.9.jar]
Run Code Online (Sandbox Code Playgroud)
只要您运行了程序的大部分逻辑(以便加载所需的类),您就可以放心地假设 verbose:class 输出中未提及的任何 jar 都可以作为 Maven 依赖项删除。
您还可以对 verbose:class 输出进行搜索和替换,例如将其转换为 csv,然后将其放入电子表格程序中以按 jar 文件进行排序/分组。
仍然需要相当多的手动工作,但至少它会给您一个开始的地方!
| 归档时间: |
|
| 查看次数: |
6329 次 |
| 最近记录: |