最初引发这个问题的是我不理解为何使用dubbo来构建项目时,提供者需要Maven install来达到更新代码的目的,而同一项目不同的modul之间互相依赖只需在pom文件中增加相应对的依赖便可。
1. 在pom文件中添加了相对应的依赖后,在仓库中一定能找到相对应的jar包吗?
- 我之前的答案是肯定的,我认为只要是在pom文件中添加了相对应的依赖,在我们的本地仓库中总能找到对应的jar包,本地仓库中没有的,也会从镜像服务器中下载,而若需要引用其他项目,也需要将被引用项目打包成jar包放入本地仓库中才可引用。
- 后来发现我并没有将被引用打包成jar包放入本地仓库,其他项目也可以依赖。
- 如果跟我有同样疑问的朋友们,可以看一下这个图。
下面的e3-common是文件夹的的图标,那么说明这是引用本地项目,并不是从本地仓库引用的jar包,如果你已经把e3-common,maven install导入到本地仓库了,那么你可以试着把e3-common close project 试试(在该项目上右键单击有一个close project的选项),你会发现在图片上的e3-common已经不见了,这时你可以上滑找找,你会发现你看到了e3-common的jar包。
2、为何使用dubbo时,提供者需要maven install一下,消费者才能接收到提供者更新后的代码?
- 首要要明白dubbo的的基本概念以及zookeeper的基本概念。
- 提供者将自己提供的服务注册到zookeeper中,而消费者会到zookeeper上找寻自己想要的服务。
- 具体他们之间怎么实现相互传递,我没有研究过源码,所以不是很明白,我理解的就是提供者和消费者都会在zookeeper注册自己的本机ip,而消费者通过ip在其仓库中找寻自己需要的服务。
小菜鸟一只,说的不对的地方还请路过的各位大佬可以指点一二。