【问题标题】:Why does my war file contain a dependency not in my tree?为什么我的 war 文件包含不在我的树中的依赖项?
【发布时间】:2018-06-27 19:38:18
【问题描述】:

我有一个使用 maven 构建的应用程序。

首先,我运行mvn clean

然后,在我构建它之后,我发现我得到了 jackson-databind jar 的 2 个副本:

ls target/ROOT/WEB-INF/lib | grep jackson
jackson-annotations-2.8.9.jar
jackson-core-2.8.9.jar
jackson-databind-2.4.4.jar
jackson-databind-2.8.9.jar

但是,当我跑步时

mvn dependency:tree

我只看到参考

com.fasterxml.jackson.core:jackson-databind:jar:2.8.9:compile

即使我运行 mvn dependency:tree -Dverbose=true,树中也没有 2.4.4 的迹象

什么给了?我是否误解了报告,因为我们显然出于某些原因引入了 2.4.4?

换一种说法(为了不那么宽泛),maven 怎么能拉入一个没有在依赖树中列出的依赖?

【问题讨论】:

  • 当您运行将verbose 标志设置为true 的命令时会看到什么? (-Dverbose=true)
  • 您是否运行了mvn clean 以确保早期版本中没有旧依赖项?
  • 是(问题已更新)
  • 如果您还没有找到其他线索,除了有什么不同的错误...请出示您的 pom 文件...make mvn clean package make an unzip -t XYZ.war 然后看看那里如果有其他版本...没有真正的项目很难找到问题..

标签: maven dependencies


【解决方案1】:

流氓文件的来源是 WAR 依赖,而不是 JAR 依赖。

我不相信这些在树上是可见的,因为它们本身并没有“解决”......它们只是被复制了。

在做

find target/ -name jackson-databind-\*.jar

全部列出。它们出现在target/war/work 目录中,该目录为您提供了指向它们来自何处的指针。

排除它们需要在maven-war-plugin的配置中完成:

<configuration>                                                           
    <overlays>                                                            
        <overlay>                                                         
            <groupId>com.group</groupId>                                 
            <artifactId>artifact-you-depend-on</artifactId>                 
            <excludes>                                                    
                <exclude>WEB-INF/lib/jackson-databind-2.4.4.jar</exclude> 
            </excludes>                                                   
        </overlay>                                                        
    </overlays>                                                           
</configuration>                                                          

【讨论】:

  • 错误的方式。更好的是给他们范围:提供......手动排除是一种气味......
  • 是的......依赖很臭,但我不拥有它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多