文档章节

dubbo源码编译

x163麦芽糖
 x163麦芽糖
发布于 2016/06/16 14:03
字数 869
阅读 216
收藏 4

本文以dubbo2.4.11源码编译和打包例

dubbo官网:http://dubbo.io/

源码:https://github.com/alibaba/dubbo

用户指南:http://dubbo.io/User+Guide-zh.htm

开发指南:http://dubbo.io/Developer+Guide-zh.htm

 

按官方说明2.4.X是GA稳定版本,去https://github.com/alibaba/dubbo/releases下载最新的2.4.11

解压到D:\project\dubbo\dubbo-dubbo-2.4.11

在编译dubbo前,先执行下面操作

1、opensesame依赖问题,可能会报Non-resolvable parent POM: Could not transfer artifact com.alibaba:opensesame:pom:2.0 from/to opensesame.releases (http://code.alibabatech.com/mvn/releases)

的错误。

打开https://github.com/alibaba/opensesame,下载opensesame(主要是pom.xml文件),解压在D:\project\dubbo\opensesame-master目录

在D:\project\dubbo\opensesame-master目录下,cmd命令行执行

mvn clean install -Dmaven.test.skip

编译完成后,修改D:\project\dubbo\opensesame-master\pom.xml,把版本2.0修改为1.0,

<groupId>com.alibaba</groupId>
    <artifactId>opensesame</artifactId>
    <!-- 2.0修改为1.0 -->
    <version>1.0</version> 
    <packaging>pom</packaging>

相同目录再编译一次opensesame

mvn clean install -Dmaven.test.skip

 

2、fastjson依赖包,可能报[ERROR] Failed to execute goal on project dubbo-common: Could not resolve dependencies for project com.alibaba:dubbo-common:jar:2.5.4-SNAPSHOT: Could not find artifact com.alibaba:fastjson:jar:1.1.8 in ibiblio.org (http://mirrors.ibiblio.org/pub/mirrors/maven2) -> [Help 1]错误

修改D:\project\dubbo\dubbo-dubbo-2.4.11\pom.xml,找到 <fastjson_version>1.1.8</fastjson_version>,将1.1.8修改为1.1.39,参考https://github.com/alibaba/dubbo/issues/22

 

3、注释D:\project\dubbo\dubbo-dubbo-2.4.11\pom.xml下边的内容

        <repositories>
        <repository>
            <id>opensesame.releases</id>
            <url>http://code.alibabatech.com/mvn/releases</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

 

4、hessian-lite依赖包,Unable to find resource 'com.alibaba:hessian-lite:jar:3.2.1-fixed-2' in repository central.repo (http://repo1.maven.org/maven2)

从github的dubbo主库中下载hessian-lite,当前最新的dubbo源码中已带有hessian-lite源码,可以直接取出来加到dubbo 2.4.11中编译(https://github.com/alibaba/dubbo,https://github.com/alibaba/dubbo/tree/master/hessian-lite)

把hessian-lite拷贝到D:\project\dubbo\dubbo-dubbo-2.4.11,

修改D:\project\dubbo\dubbo-dubbo-2.4.11\pom.xml,增加<module>hessian-lite</module>编译

<modules>
        <!-- 增加 hessian-lite-->
        <module>hessian-lite</module>
        
        <module>dubbo-common</module>
        <module>dubbo-container</module>
        <module>dubbo-remoting</module>
        <module>dubbo-rpc</module>
        <module>dubbo-filter</module>
        <module>dubbo-cluster</module>
        <module>dubbo-registry</module>
        <module>dubbo-monitor</module>
        <module>dubbo-config</module>
        <module>dubbo</module>
    </modules>

修改D:\project\dubbo\dubbo-2.4.11\hessian-lite\pom.xml

<parent>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo-parent</artifactId>
        <!--<version>2.5.4-SNAPSHOT</version> 把版本号改为2.4.11,需要与当前dubbo版本号一致-->
        <version>2.4.11</version>
    </parent>

 

5、增加编译dubbo管理控制台,这一步不是必须的,主要是官方的dubbo管理控制台下载不了,直接自己编译一个,默认下不编译打包dubbo-admin,需要自己增加。

修改D:\project\dubbo\dubbo-2.4.11\dubbo-admin\pom.xml文件,把版本号改为2.4.11

<parent>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo-parent</artifactId>
        <!-- <version>2.4.10</version> 版本号修改为2.4.11 -->
        <version>2.4.11</version>
    </parent>

修改D:\project\dubbo\dubbo-dubbo-2.4.11\pom.xml,增加<module>dubbo-admin</module>编译

<modules>
        <module>hessian-lite</module>
        <module>dubbo-common</module>
        <module>dubbo-container</module>
        <module>dubbo-remoting</module>
        <module>dubbo-rpc</module>
        <module>dubbo-filter</module>
        <module>dubbo-cluster</module>
        <module>dubbo-registry</module>
        <module>dubbo-monitor</module>
        <module>dubbo-config</module>
        <module>dubbo</module>
        <!-- 增加编译dubbo-admin管理控制台,dubbo-simple、dubbo-demo可自行决定是否编译 -->
        <module>dubbo-admin</module>
    </modules>

 

6、正式编译dubbo

1)cmd命令行,在D:\project\dubbo\dubbo-dubbo-2.4.11目录下执行命令:

先设置maven内存,否则编译时会报内存不足错误

set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=512m
mvn clean install -Dmaven.test.skip

 

7、添加eclipse支持

在D:\project\dubbo\dubbo-dubbo-2.4.11目录下执行命令:

mvn eclipse:eclipse

可以直接在eclipse运行下边几个程序

dubbo-demo-provider/src/test/java/com.alibaba.dubbo.demo.provider.DemoProvider

dubbo-demo-consumer/src/test/java/com.alibaba.dubbo.demo.consumer.DemoConsumer

dubbo-monitor-simple/src/test/java/com.alibaba.dubbo.monitor.simple.SimpleMonitor

dubbo-registry-simple/src/test/java/com.alibaba.dubbo.registry.simple.SimpleRegistry

 

8、dubbo-admin管理控制台安装

第6步执行完成后,D:\project\dubbo\dubbo-2.4.11\dubbo-admin\target目录会生成dubbo-admin-2.4.11.war,

war包解压到webapps/ROOT目录下,修改WEB-INF\dubbo.properties,

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

dubbo.properties配置zookeeper的注册中心地址(zookeeper的安装配置忽略)

注意:确定zookeeper启动后再去启动tomcat。

 

本文转载自:http://my.oschina.net/penngo/blog/494838

上一篇: 行为树 ai
x163麦芽糖
粉丝 0
博文 16
码字总数 371
作品 0
朝阳
私信 提问
dubbo2.4.11源码编译

本文以dubbo2.4.11源码编译和打包例 dubbo官网:http://dubbo.io/ 源码:https://github.com/alibaba/dubbo 用户指南:http://dubbo.io/User+Guide-zh.htm 开发指南:http://dubbo.io/Devel......

penngo
2015/08/20
0
0
分布式服务-DUBBOX(一):编译打包

1、概述 dubbo-阿里巴巴开源的分布式服务框架,现已停止维护。 dubbox-当当根据自身需求,在dubbo新增一些新功能,将其名为dubbox(Dubbo eXtensions)。 2、编译、打包并上传到私库(dubbo-2....

warlockssss
2016/11/28
878
3
Dubbox入门示例(注册服务器使用zookeeper)

前言:Dubbox now means Dubbo eXtensions, and it adds features like RESTful remoting, Kyro/FST serialization, etc to the Dubbo service framework. http://dangdangdotcom.github.io/......

Fraud
2016/01/14
2.6K
1
没有JDK和Maven,用Docker也能构建Maven工程

在编译构建Maven工程的时候,以下两种情况偶尔会遇到: 1. 当前电脑上没装Maven,甚至JDK都没装; 2. 当前电脑装了JDK8,但要用JDK7编译构建当前工程; 遇到上述情况,一般会将JDK和Maven装好...

boling_cavalry
2018/05/20
0
0
dubbox2.8.4编译发布到私服(nexus)

Maven介绍: Maven的具体介绍及安装说明可以参考: http://wentao365.iteye.com/blog/903396 http://jingyan.baidu.com/article/295430f136e8e00c7e0050b9.html Nexus介绍: Nexus的具体介绍......

凯文加内特
2015/04/29
0
7

没有更多内容

加载失败,请刷新页面

加载更多

Exchanger

从官方的javadoc可以知道, 当一个线程到达exchange调用点时, 如果它的伙伴线程此前已经调用了此方法, 那么它的伙伴会被调度唤醒并与之进行对象交换, 然后各自返回。 如果它的伙伴还没到达...

Java搬砖工程师
19分钟前
3
0
Istio 在阿里云容器服务的部署及流量治理实践

目标 在阿里云容器服务 Kubernetes 集群上部署 Istio 服务网格 实践灰度发布、故障注入、熔断等 Istio 流量管理特性 准备工作 安装和设置 kubectl 客户端,请参考不同的操作系统,如果已经安...

阿里云云栖社区
27分钟前
1
0
深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)

上篇文章《深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)》我们通过对mybatis源码的简单分析,可看出,在mybatis配置文件中,在configuration根节点下面,可配置properties、typeA...

须臾之余
45分钟前
3
0
Java Web项目通过filter限制IP访问及路由拦截

背景 web开发中出于安全方面的考虑,对于后台管理项目通常会对用户访问做限制,常见的做法是硬件上设置白名单,过滤掉不需要的IP访问来保证管理平台的安全。但是在硬件操作不方便的情形之下,...

豫华商
今天
4
0
nginx启动后页面还是打不开

是因为防火墙没有关闭 service iptables stop

米修米修er
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部