maven项目maven 打包依赖以及依赖的问题:现有项目A,B两个,A项目依赖了很多第三方jar,现在B项目需要依赖A项目--

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
标签:至少1个,最多5个
1.问题描述我现在有一个maven工程A,A依赖jar包B,B又依赖jar包C。如果现在jar包C需要升级,比如从1.0升级到2.0,但是我又没有jar包B的源代码。1)我可以直接升级jar包C吗?2)jar包B在pom文件中指定依赖1.0版本,现在升级jar包C到2.0版本了,启动tomcat的时候jar包B的pom依赖会不会检测出问题?3)如果我把jar包C直接干掉,tomcat启动的时候回检查import的依赖吗?
2.做了如下一个实验,验证环境是:1)apache-tomcat-7.0.75-windows-x642)jdk1.8.0_913)maven3.2.1
3.验证流程如下:
4.回答一下上面的几个问题1)我可以直接升级jar包C吗?可以升级,前提是新版本的jar包接口兼容老版本的接口2)jar包B在pom文件中指定依赖1.0版本,现在升级jar包C到2.0版本了,启动tomcat的时候jar包B的pom依赖会不会检测出问题?maven只是在编译的时候检测依赖,版本启动运行的时候不检测版本依赖3)如果我把jar包C直接干掉,tomcat启动的时候回检查import的依赖吗?tomcat在启动的时候不会检测依赖,但是在业务访问的时候如果涉及到相关类和接口,则会由于找不到依赖包而报NoClassDefFoundError
0 收藏&&|&&0
你可能感兴趣的文章
11 收藏,2k
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。博客分类:
1.a项目依赖于b项目,但a项目并不共用b中的jar包,所以若a项目中使用了b的类test.java中,该类同时引用了b中的jar包,则会报错,a项目必须也同时导入该包才行。
2.多个项目之间的依赖不传递,比如b项目依赖于c项目,而且a项目依赖于b项目,则a项目和c项目完全无关,若a项目中引用了b项目中的类test.java,而该类同时使用了c中类,则将出错,因为a项目打包后并没有包括c项目,a和c完全无关,a中没有c的类,除非建立a对c的依赖,这种不传递也是为了增加依赖的灵活性,简单性。
3.同一个包中,一个类对另一个类的引用,并不需要import导入该类,可以直接使用。相应的,a项目依赖b项目时,a项目中和b项目中路径完全一样的包内,a中的类可以在不import导入b中类的情况下,直接使用该类,本质上a和b是融合在一起的项目,同一个包下的类也会组合在一起,所以引用的时候和在同一个项目中引用一样,完全可以把两个项目当做一个项目,a项目实质上会把b项目的所有类放在它的同路径下包中。
浏览: 1553540 次
来自: 北京
很不错的文章
我的也是拦截不了service层
讲的不错,很详细,如果quartz定时任务类采用不继承任何类的 ...
你知道eclipse调试怎么可以回调吗?有时候总是调快了,不能 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客分类:
1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包
2.compile 只有编译和打包时才会依赖
3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包
4.runtime 运行时依赖,编译不依赖
5.默认compile
依赖范围compile是支持传递的,test不支持传递
1.传递的意思是项目A,引用了项目B,那么项目B中依赖的jar包在项目A中会被依赖
2.项目A,引用了项目B,项目A也引用了项目C,现在是项目B中依赖XX1.1.jar,项目C中依赖了XX1.2.jar包,那么项目A最后依赖jar包是哪个?
&&&& 这里面有一个级别的问题,级别就是jar包1依赖jar包2,jar包2依赖jar包3,那么如果项目中引入了jar包1,且使用了jar3,那么这个jar包3对于这个项目来说就是间接依赖,依赖级别是2,项目中使用jar包1,这个级别是0
&&&&& 回到最初问题,A项目引用了B和C,那么XX.jar包对A来说依赖级别是2,这时候A中的XX.jar包就是先引用了那个项目,jar就是哪个。
3.排查一些依赖
& 在&dependency&标签内添加&exclusions&标签就可以排查一些jar
4.总结,如果A项目中也引用了XX.jar包,最后依赖的就是A中加入的,因为A中的级别是0。级别相同取版本最近的,级别不相等取级别小的
浏览: 7026 次
来自: 陕西
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'引入Maven包,依赖怎么解决?
遇到这样一个问题
我有一个A项目,A项目依赖了很多第三方包。
当我A项目开发完成之后,我使用maven打成jar包,但是打的这个包只会将生成的class文件打好,依赖包并没有加进去。
我在B项目使用A项目生成的jar包,B项目不是一个maven工程,因此A项目的依赖包是没有包含进来的。这个情况应该怎么解决?
我应该怎样打包A项目,让其他人用的时候可以不要管它依赖的第三方包?
我的问题解决了。。。。。
新问题是这样打包把配置文件也打进去了。。。。
我加了排除配置文件的maven插件也没用。。。。
这个问题怎么解。。。
关于伯乐小组
这里有好的话题,有启发的回复和值得信任的圈子。
新浪微博:
推荐微信号
(加好友请注明来意)
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- UI,网页,交互和用户体验
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2018 伯乐在线【图文】Maven基础POM配置讲解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Maven基础POM配置讲解
&&Maven的pom.xml文件讲解
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 maven 项目间依赖打包 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信