通过Maven构建dubbo

既然可以下载得到源码以及发布包,那么为什么要去构建dubbo呢?,我们先来看下dubbo的主要模块:

我们不仅要使用dubbo的核心框架,还要使用它的一些服务,比如管理控制台、监控中心和注册中心等等。Dubbo的核心框架是可以在maven的中央仓库下载到,而相关的服务(比如上图中管理控制台、简易控制中心、简易注册中心、示例提供者和示例消费者)是下载不到的,必须由我们自己基于dubbo的源码通过Maven进行构建。

我们这里教给大家如何自己构建dubbo,还有一个原因就是,Dubbo项目从2012年之后就不更新了(据说因为团队解散的原因),那么很有可能以后在企业中我们会基于Dubbo的源码自己做一些修改或添加一些东西,那么改完之后,我们要做编译和打包,到时大家就可以参照本文的构建打包的方法即可。

其中,核心框架、管理控制台、简易监控中心、简易注册中心是我们需要的模块,目前,只有核心模块可以下载到,其它的均无法直接下载,所以我们需要构建dubbo。

当然了,在提供的资料中已经提供了已经构建好的模块提供,也可以选择不重新构建。但是我们最好要掌握好Dubbo的构建过程,因为构建的过程并不容易,它会需要依赖一些其他的东西,而这些东西你还要自己想办法去找,找到了你才能构建出来,找不到你是构建不出来的。在构建之前,我们看一下可能资料中的文件:

下面我们来演示一下如何通过Maven来构建Dubbo,首先要到github上下载dubbo的源码,下载方法如图所示:

我们已经下载好了:

我们先把dubbo-dubbo-2.5.3.zip这个源码包解压到我们的Eclipse的工作空间中:

我们打开解压后的dubbo-dubbo-2.5.3目录,看一下它的工程结构:

我们再把hessian-lite.zip和opensesame.zip这两个压缩包也解压到Eclipse的工作空间中:

下面我们就可以将上面解压到Eclipse工作空间中的3个包导入到Eclipse中:

导入源码到Eclipse

首先,我们在Eclipse中先创建一个WorkingSet:

要先将Eclipse工作空间中的那两个编译依赖导入到Eclipse:

具体导入方法如下:

使用同样的方法再将Eclipse工作空间的opensesame包也导入到Eclipse中。然后再将这两个依赖安装到Maven的本地仓库:

我们首先将“opensesame”工程安装到Maven本地仓库,具体方法是,在工程名称上面单击鼠标右键,选择“Run As”à”Maven Install”即可,但是需要联网,因为它要下载一些依赖包:

用同样的方法将“hessian-lite”也安装到Maven的本地仓库。

再导入dubbo源码到Eclipse:

导入完成:

安装hessian-lite到本地仓库:

安装opensesame到本地仓库

开始构建dubbo

在Eclipse工程中找到“dubbo-dubbo-2.5.3”,在上面点击鼠标右键选择“Run As”à“Maven build…”,在Goals输入框中输入“clean package”命令,并勾选“Skip Tests”以跳过测试,然后点击“Run”开始构建dubbo了,注意此时要保证电脑能联网,因为构建dubbo的过程会到apache官网上下载依赖的包:

构建完成,从Eclipse的控制台上拷贝一段构建成功的日志信息如下:

[INFO] Reactor Summary:

[INFO]

[INFO] dubbo-parent ....................................... SUCCESS [  0.349 s]

[INFO] dubbo-common ....................................... SUCCESS [  4.351 s]

[INFO] dubbo-container .................................... SUCCESS [  0.007 s]

[INFO] dubbo-container-api ................................ SUCCESS [  0.718 s]

[INFO] dubbo-container-spring ............................. SUCCESS [  0.368 s]

[INFO] dubbo-container-jetty .............................. SUCCESS [  0.343 s]

[INFO] dubbo-container-log4j .............................. SUCCESS [  0.432 s]

[INFO] dubbo-container-logback ............................ SUCCESS [  0.431 s]

[INFO] dubbo-remoting ..................................... SUCCESS [  0.003 s]

[INFO] dubbo-remoting-api ................................. SUCCESS [  1.717 s]

[INFO] dubbo-remoting-netty ............................... SUCCESS [  0.678 s]

[INFO] dubbo-remoting-mina ................................ SUCCESS [  0.528 s]

[INFO] dubbo-remoting-grizzly ............................. SUCCESS [  0.776 s]

[INFO] dubbo-remoting-p2p ................................. SUCCESS [  0.793 s]

[INFO] dubbo-remoting-http ................................ SUCCESS [  0.781 s]

[INFO] dubbo-remoting-zookeeper ........................... SUCCESS [  0.484 s]

[INFO] dubbo-rpc .......................................... SUCCESS [  0.004 s]

[INFO] dubbo-rpc-api ...................................... SUCCESS [  1.174 s]

[INFO] dubbo-rpc-default .................................. SUCCESS [  1.051 s]

[INFO] dubbo-rpc-injvm .................................... SUCCESS [  0.367 s]

[INFO] dubbo-rpc-rmi ...................................... SUCCESS [  0.359 s]

[INFO] dubbo-rpc-hessian .................................. SUCCESS [  0.427 s]

[INFO] dubbo-rpc-http ..................................... SUCCESS [  0.415 s]

[INFO] dubbo-rpc-webservice ............................... SUCCESS [  2.279 s]

[INFO] dubbo-cluster ...................................... SUCCESS [  1.123 s]

[INFO] dubbo-registry ..................................... SUCCESS [  0.007 s]

[INFO] dubbo-registry-api ................................. SUCCESS [  0.839 s]

[INFO] dubbo-monitor ...................................... SUCCESS [  0.004 s]

[INFO] dubbo-monitor-api .................................. SUCCESS [  0.366 s]

[INFO] dubbo-filter ....................................... SUCCESS [  0.004 s]

[INFO] dubbo-filter-validation ............................ SUCCESS [  0.429 s]

[INFO] dubbo-filter-cache ................................. SUCCESS [  0.398 s]

[INFO] dubbo-registry-default ............................. SUCCESS [  0.419 s]

[INFO] dubbo-monitor-default .............................. SUCCESS [  0.370 s]

[INFO] dubbo-registry-multicast ........................... SUCCESS [  0.443 s]

[INFO] dubbo-config ....................................... SUCCESS [  0.005 s]

[INFO] dubbo-config-api ................................... SUCCESS [  1.157 s]

[INFO] dubbo-config-spring ................................ SUCCESS [  1.080 s]

[INFO] dubbo-rpc-thrift ................................... SUCCESS [  0.898 s]

[INFO] dubbo-rpc-memcached ................................ SUCCESS [  0.469 s]

[INFO] dubbo-rpc-redis .................................... SUCCESS [  0.607 s]

[INFO] dubbo-registry-zookeeper ........................... SUCCESS [  0.574 s]

[INFO] dubbo-registry-redis ............................... SUCCESS [  0.724 s]

[INFO] dubbo .............................................. SUCCESS [  5.777 s]

[INFO] dubbo-simple ....................................... SUCCESS [  0.003 s]

[INFO] dubbo-registry-simple .............................. SUCCESS [  5.491 s]

[INFO] dubbo-monitor-simple ............................... SUCCESS [ 11.807 s]

[INFO] dubbo-admin ........................................ SUCCESS [  4.867 s]

[INFO] dubbo-demo ......................................... SUCCESS [  0.003 s]

[INFO] dubbo-demo-api ..................................... SUCCESS [  0.237 s]

[INFO] dubbo-demo-provider ................................ SUCCESS [  9.309 s]

[INFO] dubbo-demo-consumer ................................ SUCCESS [  9.491 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 01:16 min

[INFO] Finished at: 2016-05-31T11:22:10+08:00

[INFO] Final Memory: 73M/1725M

[INFO] ------------------------------------------------------------------------

再来一张截图:

在构建的时候,通过Eclipse的控制台可以看到dubbo的构建过程比较漫长,很多的工程都是一个一个进行处理的,由此可见,对于一些大型的项目,整个打包的过程也是需要消耗一定时间的。

那么,我们的dubbo构建打包完成后,打好的包在哪里呢?注意我们这里是通过“package”命令进行打的包,而不是我们以前说的那个“Maven Install”命令打的包。通过“Maven Install”打好的包会放在Maven的本地仓库中,而我们通过“package”命令打好的包是放在对应的target目录下。

找到对应的模块包:

核心框架:

在我们打好的包中,其中dubbo的核心包是放在“dubbo-dubbo-2.5.3\dubbo\target”目录下:

管理控制台

其中管理控制台的包是在“dubbo-dubbo-2.5.3\dubbo-admin\target”目录下:

简易监控中心

其中我们打好的监控中心的包是在“dubbo-dubbo-2.5.3\dubbo-simple\dubbo-monitor-simple\target”目录下:

简易注册中心

而我们打好的注册中心的包是在“dubbo-dubbo-2.5.3\dubbo-simple\dubbo-registry-simple\target”目录下:

基于dubbo源码包通过Maven构建dubbo的详细步骤的更多相关文章

  1. 【Dubbo源码阅读系列】之 Dubbo SPI 机制

    最近抽空开始了 Dubbo 源码的阅读之旅,希望可以通过写文章的方式记录和分享自己对 Dubbo 的理解.如果在本文出现一些纰漏或者错误之处,也希望大家不吝指出. Dubbo SPI 介绍 Java ...

  2. dubbo源码学习(二)dubbo容器启动流程简略分析

    dubbo版本2.6.3 继续之前的dubbo源码阅读,从com.alibaba.dubbo.container.Main.main(String[] args)作为入口 简单的数据一下启动的流程 1 ...

  3. dubbo源码学习(一)dubbo容器启动流程简略分析

    最近在学习dubbo,dubbo的使用感觉非常的简单,方便,基于Spring的容器加载配置文件就能直接搭建起dubbo,之前学习中没有养成记笔记的习惯,时间一久就容易忘记,后期的复习又需要话费较长的时 ...

  4. 【Dubbo源码阅读系列】之 Dubbo XML 配置加载

    今天我们来谈谈 Dubbo XML 配置相关内容.关于这部分内容我打算分为以下几个部分进行介绍: Dubbo XML Spring 自定义 XML 标签解析 Dubbo 自定义 XML 标签解析 Du ...

  5. maven(3)------maven构建web项目详细步骤

    eclipse集成工具,轻松通过maven构建web项目步骤如下: 一, 右键,new -->project, 进入下一页面 二,选择"Maven Project", 点击下 ...

  6. 源码包安装maven

    含有的命令:cd,tar,mv,vim,sourc,mvnpv [root@ycj ~]# cd /usr/local/src/ //切换路径 [root@ycj src]# wget http:// ...

  7. dubbo源码分析3-service bean的创建与发布

    dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分 ...

  8. Dubbo源码分析之 SPI(一)

    一.概述 dubbo SPI 在dubbo的作用是基础性的,要想分析研究dubbo的实现原理.dubbo源码,都绕不过 dubbo SPI,掌握dubbo SPI 是征服dubbo的必经之路. 本篇文 ...

  9. linux 软件管理--yum工具及源码包

    目录 linux 软件管理--yum工具及源码包 一.yum基本概述 二.yum源的配置 三.yum实践案例 四.yum全局配置文件 五.yum签名检查机制 五.制作本地yum仓库 六.构建企业级yu ...

随机推荐

  1. c#代码画图

    说明:此示例代码在我做的一个项目中  不过还是可以学习一下 一:直角坐标系显示数据 先看效果图:

  2. 【linux命令与工具】lsmod命令

    lsmod命令用来显示已被内核加载的模块的状态 描述: lsmod命令可以美观地显示/prco/module中的内容,这些内容是被已被内核加载模块的信息. 使用lsmod之后,系统会显示出目前已经存在 ...

  3. 第十四章:高级I/O

    14.1:引言 本章内容包括非阻塞I/O.记录锁.系统V流机制.I/O多路转接(select和poll函数).readv和writev函数以及存储映射I/O(mmap),这些都称为高级I/O. 14. ...

  4. C#中求数组的子数组之和的最大值

    <编程之美>183页,问题2.14——求子数组的字数组之和的最大值.(整数数组) 我开始以为可以从数组中随意抽调元素组成子数组,于是就有了一种想法,把最大的元素抽出来,判断是大于0还是小于 ...

  5. jar文件签名

    1.生成密钥: keytool -genkey -keystore key.keystore -alias key -validity 3650 将在当前目录下生成一个key.keystore文件, ...

  6. mvcAPI (入门 1)

    步骤: 1)建立order 类 2)建立OrderEntity类 3)创建控制器API 这时候能看到Json 格式的数据啦 5)想在网页或客户端显示 添加一个网页 如下: <!DOCTYPE h ...

  7. Eclipse新建工程编译R cannot be resolved to a variable问题

    Eclipse新建工程编译R cannot be resolved to a variable问题 新建工程编译提示R cannot be resolved to a variable 图1 然后打开 ...

  8. windows下安装zabbix_agents_2.2.0

    下载与解压 下载zabbix_agents_2.2.0 http://www.zabbix.com/downloads/2.2.0/zabbix_agents_2.2.0.win.zip 解压到C盘下 ...

  9. python_way day14 CSS

    python_way day14 CSS 层叠样式表 一.CSS作用域: 二.css标签选择器 三.css样式 一.css作用域: 基本用法:style="样式" <body ...

  10. 四十条测试你是不是合格的PHP程序员

    四十条测试你是否合格的PHP程序员,不官方,也不权威,但很给力.超过三条就不合格了.超过五条就得好好反省下自己的不足了. 1. 不会利用如phpDoc这样的工具来恰当地注释你的代码 2. 对优秀的集成 ...