Maven依赖之解决Maven优先使用Eclipse工作空间项目而非Maven库jar包有关问题


通常会有这样的两种情况:1,在项目开发阶段时,我们想优先使用工作空间的项目代替maven库中的jar包.2,项目测试时我们想优先使用maven库中的jar包代替工作空间的项目.下面对如何调整优先级做一点分享(个人实验得来的经验,不够官方,如果更好的方案还请指教).这里我们将用两个项目分别叫biz和dao作为演示.其中biz依赖dao.

 

原理:

maven项目在查找依赖时会首先查看工作空间是否有满足当前groupid, artifactid, version条件的项目,如果有就会将其引入进来,此时你在maven的依赖里就会看到文件夹形式的依赖,这就是项目依赖.否则你就会看到一个jar包被引入进来.

 

这两种引用各有好处,当进行项目开发时我们可能需要频繁地更改dao里的代码,此时当你改变或者添加了一些biz编译所必须的代码,这时你的biz包里是不能马上生效,你需要将改变后的dao包装入maven库(本地或者远程)才能在biz层继续.这样就非常麻烦.所以如果此时


你用了项目依赖(即文件夹形式),你就不用将包装入maven库,直到你需要打包biz时你才需要去将dao代码装入maven库.

因为打包时的依赖必需从maven库上取得.  

但同时我们可能也有这样的情况,比如我们引入进来的代码是用来看的源码,又或者是我们想测试当前maven库上的包在编译时会不会还有错误等等,此时你可能非常想依赖maven库上的dao包来编译biz包.此时我们就需要用到第二种情况.

 

解决方案 :

1,在项目开发阶段时,我们想优先使用工作空间的项目代替maven库中的jar包

a,当我们通常情况下,在biz项目里,maven会自动使用dao项目作为依赖,前提是groupid, artifactid, version这三个参数要和biz所依赖的相同.如果没有使用项目依赖,可以手动用maven更新一下biz项目就可以了.

 

2,项目测试时我们想优先使用maven库中的jar包代替工作空间的项目

a,关闭工作空间中打开的dao项目.此时maven会自动使用maven库中的jar包进行编译.

b,修改groupid, artifactid, version中的一个参数,此时maven由于在工作空间中找不到相对应的项目也会自动使用maven库中的jar包进行编译.建议修改version参数.


转载自: Maven依赖之解决Maven优先使用Eclipse工作空间项目而非Maven库jar包有关问题 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值