使用maven 找到依赖的JAR包
1.业务场景
有些时候,我需要知道某个jar包依赖了哪些包,这个时候可以通过maven 依赖插件将依赖的包copy出来。
2.具体做法
我们可以创建一个空的项目,增加 pom.xml 文件,增加我们需要的依赖包。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.redxun</groupId>
<artifactId>jpaas-cloud</artifactId>
<version>6.8.5-SNAPSHOT</version>
</parent>
<groupId>com.study</groupId>
<artifactId>ActivitiDep</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>7.1.0.2.M7</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>7.1.0.2.M7</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.2.M7</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<!-- 复制依赖 -->
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- 依赖包 输出目录 -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
添加这个后,我们执行 maven 的 package打包命令,maven就会将我们需要的JARcopy到指定的目录下面。
3.输出依赖树
有些时候,我需要输出依赖的结构,那么可以使用下面的命令进行输出
mvn dependency:tree > dep.txt
输出的内容如下:
[INFO] --- maven-dependency-plugin:3.0.2:tree (default-cli) @ ActivitiDep ---
[INFO] com.study:ActivitiDep:jar:6.8.5-SNAPSHOT
[INFO] +- org.activiti:activiti-engine:jar:7.1.0.2.M7:compile
[INFO] | +- org.activiti.api:activiti-api-runtime-shared:jar:7.1.0.2.M7:compile
[INFO] | +- org.activiti.core.common:activiti-project-model:jar:7.1.0.2.M7:compile
[INFO] | +- org.activiti:activiti-bpmn-converter:jar:7.1.0.2.M7:compile
[INFO] | +- org.activiti:activiti-bpmn-model:jar:7.1.0.2.M7:compile
[INFO] | +- org.activiti:activiti-process-validation:jar:7.1.0.2.M7:compile
[INFO] | +- org.apache.commons:commons-email:jar:1.5:compile
[INFO] | | \- com.sun.mail:javax.mail:jar:1.5.6:compile
[INFO] | | \- javax.activation:activation:jar:1.1:compile
[INFO] | +- org.mybatis:mybatis:jar:3.5.1:compile
[INFO] | +- org.springframework:spring-beans:jar:5.2.15.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:5.2.15.RELEASE:compile
[INFO] | | \- org.springframework:spring-jcl:jar:5.2.15.RELEASE:compile
[INFO] | +- de.odysseus.juel:juel-api:jar:2.2.7:compile
[INFO] | +- de.odysseus.juel:juel-impl:jar:2.2.7:compile
[INFO] | +- de.odysseus.juel:juel-spi:jar:2.2.7:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.11.4:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.4:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.4:compile
[INFO] | +- joda-time:joda-time:jar:2.10.5:compile
使用maven 找到依赖的JAR包的更多相关文章
- maven将依赖打入jar包
将 依赖打入jar包,由于maven管理了所有的依赖,所以将项目的代码和依赖打成一个包对它来说是顺理成章的功能.maven的这个功能之前就用过,但这 次使用时忘了细节,只记得用maven的assemb ...
- 导出maven项目依赖的jar包
注意使用mvn命令是需要配置好maven的环境变量 一.导出到自定义目录中 在maven项目下创建lib文件夹,输入以下命令: mvn dependency:copy-dependencies -Do ...
- web项目部署后动态编译无法找到依赖的jar包
很纳闷的一个问题,通过配置文件生成的java源码在本地动态编译没有问题,但是部署服务器后编译不通过,找不到依赖的jar包. 通过网上查资料,找到一个兄弟提供的方法,问题解决了:下面贴出代码以供参考: ...
- Maven入门-依赖管理(Jar包管理)(二)
1 依赖管理(Jar包管理) 1.添加依赖
- maven项目依赖其他jar包的时候,idea运行没问题,java -jar 报错:java.lang.SecurityException: Invalid signature file digest
当项目依赖其他jar包的时候,打出的jar包执行出错,抛出这个异常. 原因:因为依赖jar包中的META-INF中有多余的.SF文件与当前jar包冲突, 解决方案 一 在打包前删除依赖jar包的.SF ...
- maven将依赖打入jar包中
1.在pom.xml中加入maven-assembly-plugin插件: <build> <plugins> <plugin> <artifactId> ...
- maven将依赖的jar包复制到指定位置
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- maven将依赖打入jar包并制定main方法
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId& ...
- maven 将依赖的jar包打入jar包中
pom中加入以下代码,利用mvn assembly:assembly就可以了. <build> <plugins> <plugin> <artifactId& ...
- 拷贝Maven工程依赖的jar包出来
参考:https://blog.csdn.net/fengsheng5210/article/details/80491731
随机推荐
- 即构 UIKits 重磅发布!高效开发与自定义UI兼备,打造互动场景新标杆
即构UIKits上线,新一代场景化实时互动SDK! 即构科技发布了首款面向中小团队的整合型实时互动产品UIKits , 基于场景化最佳实践,整合RTC.IM.直播.美颜等多款产品,打造了音视频通话UI ...
- webpack系列-externals配置使用(CDN方式引入JS)
如果需要引用一个库,但是又不想让webpack打包(减少打包的时间),并且又不影响我们在程序中以CMD.AMD或者window/global全局等方式进行使用(一般都以import方式引用使用),那就 ...
- ASP.NET Core – MVC
前言 在 ASP.NET Core – MVC vs Razor Page 里有提到 MVC. 它算是 WebAPI 的抽象. 但是通常 MVC 指的是比较传统的 Website, WebAPI 则是 ...
- C++面试题整理 2
8. C++11新特性又哪些 自动类型推导auto,智能指指针(share_ptr,unique_ptr等),for循环简化,线程相关的(std::thread/std::mutex),空指针null ...
- 暑假集训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. ...
- 排查maven 冲突及解决方式
Maven Maven 是一个以项目为中心的自动化构建工具,主要用于Java项目的管理和构建.它提供了一种统一的方式来描述项目的结构.依赖关系和构建过程,简化了项目的构建和管理. Maven 的主要特 ...
- AD域下,环境下办公机系统时间不准确
事件起因: 某部门一同事电脑时间和AD域控时间相差3分钟,虽然说时间相差5分钟内问题不大,但是本着有问题就解决的原则,还是花了点时间去查资料解决. (小小吐槽一下,在我看来域控机是掌管下面所有的办公机 ...
- 使用阿里云 SpringBoot 仓库初始化项目
本文基于:https://www.bilibili.com/video/BV15b4y1a7yG?p=5&vd_source=cf8900ba33d057d422c588abe5d5290d ...
- Linux内核中cpu_capacity是什么?
cpu_capacity 在Linux内核中,cpu_capacity 是用于表示每个CPU的处理能力的一个参数,通常用于调度器的负载均衡.它表明不同的CPU核心在计算资源分配中的相对性能,尤其在异构 ...
- store文件夹的处理,vuex模块化modules
index文件代码: import Vue from "vue"; import Vuex from "vuex"; // 导入根getters import ...