1.业务场景

有些时候,我需要知道某个jar包依赖了哪些包,这个时候可以通过maven 依赖插件将依赖的包copy出来。

2.具体做法

我们可以创建一个空的项目,增加 pom.xml 文件,增加我们需要的依赖包。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <parent>
  7. <groupId>com.redxun</groupId>
  8. <artifactId>jpaas-cloud</artifactId>
  9. <version>6.8.5-SNAPSHOT</version>
  10. </parent>
  11. <groupId>com.study</groupId>
  12. <artifactId>ActivitiDep</artifactId>
  13. <properties>
  14. <maven.compiler.source>8</maven.compiler.source>
  15. <maven.compiler.target>8</maven.compiler.target>
  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17. </properties>
  18. <dependencies>
  19. <dependency>
  20. <groupId>org.activiti</groupId>
  21. <artifactId>activiti-engine</artifactId>
  22. <version>7.1.0.2.M7</version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.activiti</groupId>
  26. <artifactId>activiti-image-generator</artifactId>
  27. <version>7.1.0.2.M7</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.activiti</groupId>
  31. <artifactId>activiti-spring-boot-starter</artifactId>
  32. <version>7.1.0.2.M7</version>
  33. </dependency>
  34. </dependencies>
  35. <build>
  36. <plugins>
  37. <plugin>
  38. <groupId>org.apache.maven.plugins</groupId>
  39. <artifactId>maven-dependency-plugin</artifactId>
  40. <!-- 复制依赖 -->
  41. <executions>
  42. <execution>
  43. <id>copy-dependencies</id>
  44. <phase>package</phase>
  45. <goals>
  46. <goal>copy-dependencies</goal>
  47. </goals>
  48. <configuration>
  49. <!-- 依赖包 输出目录 -->
  50. <outputDirectory>${project.build.directory}/lib</outputDirectory>
  51. </configuration>
  52. </execution>
  53. </executions>
  54. </plugin>
  55. </plugins>
  56. </build>
  57. </project>

添加这个后,我们执行 maven 的 package打包命令,maven就会将我们需要的JARcopy到指定的目录下面。

3.输出依赖树

有些时候,我需要输出依赖的结构,那么可以使用下面的命令进行输出

  1. mvn dependency:tree > dep.txt

输出的内容如下:

  1. [INFO] --- maven-dependency-plugin:3.0.2:tree (default-cli) @ ActivitiDep ---
  2. [INFO] com.study:ActivitiDep:jar:6.8.5-SNAPSHOT
  3. [INFO] +- org.activiti:activiti-engine:jar:7.1.0.2.M7:compile
  4. [INFO] | +- org.activiti.api:activiti-api-runtime-shared:jar:7.1.0.2.M7:compile
  5. [INFO] | +- org.activiti.core.common:activiti-project-model:jar:7.1.0.2.M7:compile
  6. [INFO] | +- org.activiti:activiti-bpmn-converter:jar:7.1.0.2.M7:compile
  7. [INFO] | +- org.activiti:activiti-bpmn-model:jar:7.1.0.2.M7:compile
  8. [INFO] | +- org.activiti:activiti-process-validation:jar:7.1.0.2.M7:compile
  9. [INFO] | +- org.apache.commons:commons-email:jar:1.5:compile
  10. [INFO] | | \- com.sun.mail:javax.mail:jar:1.5.6:compile
  11. [INFO] | | \- javax.activation:activation:jar:1.1:compile
  12. [INFO] | +- org.mybatis:mybatis:jar:3.5.1:compile
  13. [INFO] | +- org.springframework:spring-beans:jar:5.2.15.RELEASE:compile
  14. [INFO] | +- org.springframework:spring-core:jar:5.2.15.RELEASE:compile
  15. [INFO] | | \- org.springframework:spring-jcl:jar:5.2.15.RELEASE:compile
  16. [INFO] | +- de.odysseus.juel:juel-api:jar:2.2.7:compile
  17. [INFO] | +- de.odysseus.juel:juel-impl:jar:2.2.7:compile
  18. [INFO] | +- de.odysseus.juel:juel-spi:jar:2.2.7:compile
  19. [INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.11.4:compile
  20. [INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.4:compile
  21. [INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.4:compile
  22. [INFO] | +- joda-time:joda-time:jar:2.10.5:compile

使用maven 找到依赖的JAR包的更多相关文章

  1. maven将依赖打入jar包

    将 依赖打入jar包,由于maven管理了所有的依赖,所以将项目的代码和依赖打成一个包对它来说是顺理成章的功能.maven的这个功能之前就用过,但这 次使用时忘了细节,只记得用maven的assemb ...

  2. 导出maven项目依赖的jar包

    注意使用mvn命令是需要配置好maven的环境变量 一.导出到自定义目录中 在maven项目下创建lib文件夹,输入以下命令: mvn dependency:copy-dependencies -Do ...

  3. web项目部署后动态编译无法找到依赖的jar包

    很纳闷的一个问题,通过配置文件生成的java源码在本地动态编译没有问题,但是部署服务器后编译不通过,找不到依赖的jar包. 通过网上查资料,找到一个兄弟提供的方法,问题解决了:下面贴出代码以供参考: ...

  4. Maven入门-依赖管理(Jar包管理)(二)

    1       依赖管理(Jar包管理) 1.添加依赖  

  5. maven项目依赖其他jar包的时候,idea运行没问题,java -jar 报错:java.lang.SecurityException: Invalid signature file digest

    当项目依赖其他jar包的时候,打出的jar包执行出错,抛出这个异常. 原因:因为依赖jar包中的META-INF中有多余的.SF文件与当前jar包冲突, 解决方案 一 在打包前删除依赖jar包的.SF ...

  6. maven将依赖打入jar包中

    1.在pom.xml中加入maven-assembly-plugin插件: <build> <plugins> <plugin> <artifactId> ...

  7. maven将依赖的jar包复制到指定位置

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

  8. maven将依赖打入jar包并制定main方法

    <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId& ...

  9. maven 将依赖的jar包打入jar包中

    pom中加入以下代码,利用mvn assembly:assembly就可以了. <build> <plugins> <plugin> <artifactId& ...

  10. 拷贝Maven工程依赖的jar包出来

    参考:https://blog.csdn.net/fengsheng5210/article/details/80491731

随机推荐

  1. 即构 UIKits 重磅发布!高效开发与自定义UI兼备,打造互动场景新标杆

    即构UIKits上线,新一代场景化实时互动SDK! 即构科技发布了首款面向中小团队的整合型实时互动产品UIKits , 基于场景化最佳实践,整合RTC.IM.直播.美颜等多款产品,打造了音视频通话UI ...

  2. webpack系列-externals配置使用(CDN方式引入JS)

    如果需要引用一个库,但是又不想让webpack打包(减少打包的时间),并且又不影响我们在程序中以CMD.AMD或者window/global全局等方式进行使用(一般都以import方式引用使用),那就 ...

  3. ASP.NET Core – MVC

    前言 在 ASP.NET Core – MVC vs Razor Page 里有提到 MVC. 它算是 WebAPI 的抽象. 但是通常 MVC 指的是比较传统的 Website, WebAPI 则是 ...

  4. C++面试题整理 2

    8. C++11新特性又哪些 自动类型推导auto,智能指指针(share_ptr,unique_ptr等),for循环简化,线程相关的(std::thread/std::mutex),空指针null ...

  5. 暑假集训CSP提高模拟18

    \[暑假集训CSP提高模拟 \ 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 \] Very good problem, this make my news rotate. ...

  6. 排查maven 冲突及解决方式

    Maven Maven 是一个以项目为中心的自动化构建工具,主要用于Java项目的管理和构建.它提供了一种统一的方式来描述项目的结构.依赖关系和构建过程,简化了项目的构建和管理. Maven 的主要特 ...

  7. AD域下,环境下办公机系统时间不准确

    事件起因: 某部门一同事电脑时间和AD域控时间相差3分钟,虽然说时间相差5分钟内问题不大,但是本着有问题就解决的原则,还是花了点时间去查资料解决. (小小吐槽一下,在我看来域控机是掌管下面所有的办公机 ...

  8. 使用阿里云 SpringBoot 仓库初始化项目

    本文基于:https://www.bilibili.com/video/BV15b4y1a7yG?p=5&vd_source=cf8900ba33d057d422c588abe5d5290d ...

  9. Linux内核中cpu_capacity是什么?

    cpu_capacity 在Linux内核中,cpu_capacity 是用于表示每个CPU的处理能力的一个参数,通常用于调度器的负载均衡.它表明不同的CPU核心在计算资源分配中的相对性能,尤其在异构 ...

  10. store文件夹的处理,vuex模块化modules

    index文件代码: import Vue from "vue"; import Vuex from "vuex"; // 导入根getters import ...