如何找出为什么Maven包含罐子?

2022-09-02 01:34:36

我们将 Maven 3 与 IntelliJ 一起用于我们的 IDE。编译后,我们得到一堆弹簧2.0的东西被包含在外部库中。如果我在Intellij中查看Maven Projects依赖项,我没有看到任何人依赖spring 2.0,所以我怀疑这是我们依赖的东西,这取决于它。

我的问题是我如何追踪这个?我尝试做一个甚至,但从根目录或我知道正在使用spring的子模块目录运行时没有得到任何结果。mvn dependency:tree -Dverbose -Dincludes=spring-aop-Dincludes=spring


答案 1

看起来传递到的模式不正确。-Dincludes

Maven 依赖插件的文档中,的语法由 定义。从 AbstractStrictPatternArtifactFilter 的 javadoc 中,这是从中子类化的,-DincludesStrictPatternIncludesArtifactFilter

工件模式语法的形式为:

[groupId]:[artifactId]:[type]:[version]

其中,每个模式段都是可选的,并支持完整和部分 * 通配符。空模式段被视为隐式通配符。

例如,将匹配其组 ID 以 开头的所有项目,并将匹配所有快照项目。org.apache.*org.apache.:::*-SNAPSHOT

也许你应该在没有的情况下运行,看看它是否显示了与spring 2.0相关的依赖关系。或者,为 指定适当的模式。mvn dependency:tree-Dincludes-Dincludes


答案 2

您搜索的格式错误。试试这个:

mvn dependency:tree -Dverbose -Dincludes=:spring*::

(搜索具有以 spring 开头的 groupId 的任何工件)

或者这个:

mvn dependency:tree -Dverbose -Dincludes=org.springframework

(使用 artifactId org.springframework 搜索任何工件)


推荐