Maven 项目查找 jar 包是由哪个依赖引入的

(一)直接使用mvn dependency:tree可以查看项目完整的依赖树

1. 命令格式

mvn dependency:tree -Dverbose -Dincludes=要查询的内容
  • dependency:tree:表示树状显示。
  • Dverbose:表示可以显示所有的引用,包括因为多次引用重复而忽略的。
  • Dincludes:可以制定查询条件
  • mvn dependency:tree > C:\Users\wayss000\Desktop\maven.txt
    # 该命令作用是讲maven的依赖trree打印到maven.txt文件中
    # 值得注意的是,如果你的代码相互之间有依赖,则需要先执行mvn install
    # 最后,在maven.txt中Ctrl + F 搜索要寻找的jar名
    

    2. 使用示例

    比如想要查找下图中的这个jakarta.validation-api-2.0.2.jar是由pom.xml中哪个配置引入的,可以这样做:

    图片.png

    首先可以在上图中看出来该jar包所对应pom.xml配置的groupId和artifactId为jakarta.validation:jakarta.validation-api,中间是冒号分隔的。所以我们要搜索的就是这个groupId和artifactId。直接将jakarta.validation:jakarta.validation-api放到查询条件上,执行命令:

    mvn dependency:tree -Dverbose -Dincludes=jakarta.validation:jakarta.validation-api
    

    执行结果如下图所示:

    图片.png

    图中 3 是我们搜索的jar包的groupId和artifactId,1 是找到的目标配置的groupId,2 是找到的目标配置的artifactId,我们可以直接拿着找到的这个groupId和artifactId直接到项目的pom.xml去搜索,这样就直接找到对应的配置了,也就知道了这个jar包是怎么引入的了。

    综上,得出jakarta.validation-api-2.0.2.jar是由下面的配置引入的:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    

    (二)IDEA查找jar包maven依赖所在pom

    1. 定位找到所在包名