Java 如何找出Maven包含jar的原因?
我们在IDE中使用带IntelliJ的Maven 3。编译之后,我们得到了一堆Spring2.0的东西,这些东西包含在外部库中。如果我查看Intellij中的Maven项目依赖项,我没有看到任何人对Spring2.0有依赖,所以我怀疑这是我们所依赖的东西Java 如何找出Maven包含jar的原因?,java,spring,maven,intellij-idea,maven-3,Java,Spring,Maven,Intellij Idea,Maven 3,我们在IDE中使用带IntelliJ的Maven 3。编译之后,我们得到了一堆Spring2.0的东西,这些东西包含在外部库中。如果我查看Intellij中的Maven项目依赖项,我没有看到任何人对Spring2.0有依赖,所以我怀疑这是我们所依赖的东西 我的问题是,我将如何追踪这一点?我尝试了一个mvn依赖项:tree-Dverbose-Dincludes=spring aop甚至-Dincludes=spring,但是从根目录或我知道正在使用spring的子模块目录运行时没有得到任何结果 传
我的问题是,我将如何追踪这一点?我尝试了一个
mvn依赖项:tree-Dverbose-Dincludes=spring aop
甚至-Dincludes=spring
,但是从根目录或我知道正在使用spring的子模块目录运行时没有得到任何结果 传递给-Dincludes
的模式似乎不正确
从的文档中,-Dincludes
的语法由StrictPatterns IncludesArtifactFilter
定义。从其子类的javadoc中
工件模式语法是
表格:
[groupId]:[artifactId]:[type]:[version]
其中每个图案段都是可选的,并且支持完整和
部分*通配符。空洞的图案
段被视为隐式
通配符
例如,org.apache.*
将匹配其组的所有工件
id以org.apache.
开头,并且:*-快照将匹配所有快照
人工制品
也许您应该运行mvn dependency:tree
,而不运行-Dincludes
,看看它是否显示了与spring2.0相关的依赖关系。或者,为搜索的格式错误的-Dincludes
指定适当的模式。试试这个:
mvn dependency:tree -Dverbose -Dincludes=:spring*::
(搜索groupId以spring开头的任何工件)
或者这个:
mvn dependency:tree -Dverbose -Dincludes=org.springframework
(使用artifactId org.springframework搜索任何工件)为什么不使用intellij并轻松修复它呢。
打开pom.xml,右键单击(调用上下文菜单)并选择UML>ShowDependencies(假设启用了UML插件)。
Idea将标记所有重复的依赖项,您可以使用ALT+Enter组合来排除依赖项。
@另见:
我尝试使用上面的命令,以理解为什么包含特定的jar。但是,上面的maven命令正在执行,并表示构建成功,但没有关于依赖关系的信息。