maven 传递依赖的实现
1、maven 传递依赖scope=compile的包
比如:工程A依赖工程B,工程B依赖工程C,那么A工程的jar包含工程C中scope=compile的包
2、排除依赖用<exclusions>
如果A工程只想依赖B,不希望将B工程项下的C工程的包依赖进来,可以:
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>3、当程序中遇到编译没问题,运行有问题时,需要查找工程的依赖树结构,看是否存在运行时需要的包 ,示例如下:
modeling-support工程依赖modeling-facade工程,modeling-facade工程依赖了metrics-api工程
modeling-support pom:
<dependency> <groupId>com.xxx</groupId> <artifactId>modeling-facade</artifactId> </dependency>
modeling-facade pom:
<dependency> <groupId>com.xxx</groupId> <artifactId>metrics-api</artifactId> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
metrics-api pom:
<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,进而运行出错
到此这篇关于maven 传递依赖的实现的文章就介绍到这了,更多相关maven 传递依赖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
实战干货之基于SpringBoot的RabbitMQ多种模式队列
RabbitMQ 是一个由Erlang语言开发的AMQP的开源实现,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,下文将带你深入了解 RabbitMQ 多种模式队列2021-09-09
Tk.mybatis零sql语句实现动态sql查询的方法(4种)
有时候,查询数据需要根据条件使用动态查询,这时候需要使用动态sql,本文主要介绍了Tk.mybatis零sql语句实现动态sql查询的方法,感兴趣的可以了解一下2021-12-12
spring mvc @PathVariable绑定URI模板变量值方式
这篇文章主要介绍了spring mvc @PathVariable绑定URI模板变量值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
Mybatis Mapper中多参数方法不使用@param注解报错的解决
这篇文章主要介绍了Mybatis Mapper中多参数方法不使用@param注解报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。2022-01-01
Spring Security中使用authorizeRequests遇到的问题小结
Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员,这篇文章主要介绍了Spring Security中使用authorizeRequests遇到的问题,需要的朋友可以参考下2023-02-02
spring Profile如何为不同环境提供不同的配置支持
这篇文章主要介绍了spring Profile如何为不同环境提供不同的配置支持,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-08-08


最新评论