正如标题所示,我想知道在Maven中是否有这样的机会知道jar文件被加载到模块中。就像依赖:树,但我想看到具有特定类文件的jar。谢谢!
答案 0 :(得分:2)
据我所知,没有特定的Maven插件(3.0+)可以搜索类声明的依赖项。但是,我相信我了解您的需求并提供以下解决方案:
查找重复声明
mvn dependency:analyze-duplicate -DcheckDuplicateClasses
在Eclipse中查找包含JAR
使用 CTRL + SHIFT + T 打开打开类型对话框。输入部分或整个类名称会在构建类路径上显示包含JAR的列表。
查找包含不带IDE的JAR
如果在没有IDE(例如CI服务器)的系统上检查需要更多的程序控制,可以使用以下代码段列出包含特定类甚至特定名称模式的JAR文件。这种方法使用Maven的依赖插件来收集临时目录中的所有依赖项,以便可以轻松搜索它们。
对于Unix或Git Bash系统
mvn clean dependency:copy-dependencies -D=target/temp
for j in target/temp/*.jar; do jar -tf $j | grep SomeClass && echo $j; done
适用于Windows cmd
shell
mvn clean dependency:copy-dependencies -D=target/temp
for /R %G in (target\temp\*.jar) do @jar -tf "%G" | find "SomeClass" && echo %G
在任何一种情况下,都会显示匹配条目的完整包和类名,后跟包含JAR文件名。 grep
和find
搜索参数可以进一步细化以根据需要限制匹配,例如SomeClass.class
。
希望这有帮助。