maven 传递依赖

1、maven 传递依赖scope=compile的包,比如:工程A依赖工程B,工程B依赖工程C,那么A工程的jar包含工程C中scope=compile的包

2、排除依赖用<exclusions>,如果A工程只想依赖B,不希望将B工程项下的C工程的包依赖进来,可以:

XML 复制代码
<exclusions>
    <exclusion>
         <groupId>*</groupId>
         <artifactId>*</artifactId>
    </exclusion>         
</exclusions>

3、当程序中遇到编译没问题,运行有问题时,需要查找工程的依赖树结构,看是否存在运行时需要的包 ,示例如下:

modeling-support工程依赖modeling-facade工程,modeling-facade工程依赖了metrics-api工程

modeling-support pom:

XML 复制代码
<dependency>
	<groupId>com.xxx</groupId>
	<artifactId>modeling-facade</artifactId>
</dependency>

modeling-facade pom:

XML 复制代码
<dependency>
	<groupId>com.xxx</groupId>
	<artifactId>metrics-api</artifactId>
	<exclusions>
		<exclusion>
			<groupId>*</groupId>
			<artifactId>*</artifactId>
		</exclusion>
	</exclusions>
</dependency>

metrics-api pom:

XML 复制代码
<dependency>
	<groupId>org.mvel</groupId>
	<artifactId>mvel2</artifactId>
</dependency>

当modeling-support 工程执行代码:Keval.eval(combinExpress, metricSourceIdMap);

由于Keval 是在metrics-api工程里面,所以传递依赖后,modeling-support对上述语句编译没问题,但是无法执行Keval.eval ,因为执行此代码需要mvel2的包,然而modeling-facade 工程已经排除了,所以modeling-support 工程也就没有这个jar,进而运行出错

相关推荐
还是大剑师兰特1 天前
Maven‑3.9.16 Windows 下载+安装+环境变量完整教程
java·windows·maven
qq_366086221 天前
idea 每次重启软件 Maven 中依赖 jar 包缺失
maven·intellij-idea·jar
橘子编程1 天前
Java邮件发送全攻略:从入门到实战
java·开发语言·spring boot·spring·spring cloud·maven
南大白1 天前
IDEA Maven+JDK 全局配置 日志记录
java·maven·intellij-idea
Arvin6272 天前
SonarQube 扫描 Maven 项目编译错误
java·maven·sonar
page_qiu2 天前
jekins 完整部署详细流程(集成 SVN 源码管理 + Maven 打包 + Jar 程序自动部署)
svn·maven·jar
钱栈up4 天前
VSCode 调试多模块 Maven + Spring Boot 后端:从启动失败到一次跑通
java·spring boot·maven
砚底藏山河4 天前
【量化纯GET实战 #11】移动均线 MA:5 日 20 日 60 日怎么算怎么用
java·python·金融·maven
云计算磊哥@5 天前
运维开发宝典064-CICD_Nexus3 搭建 maven 私服
运维·maven·运维开发
卓怡学长5 天前
w175基于springboot校园二手物品交易平台
java·spring boot·spring·maven·intellij-idea