当前位置: 代码网 > it编程>编程语言>Java > maven 传递依赖的实现

maven 传递依赖的实现

2024年10月22日 Java 我要评论
1、maven 传递依赖scope=compile的包比如:工程a依赖工程b,工程b依赖工程c,那么a工程的jar包含工程c中scope=compile的包2、排除依赖用<exclusions&

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 传递依赖内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com