文档章节

dubbo2.4.11源码编译

penngo
 penngo
发布于 2015/08/20 00:23
字数 878
阅读 6564
收藏 67
点赞 5
评论 0

本文以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。



© 著作权归作者所有

共有 人打赏支持
penngo
粉丝 75
博文 86
码字总数 55112
作品 2
广州
程序员

暂无相关文章

Android JNI 读写Bitmap的方法

Java层创建Bitmap,通过JNI将Bitmap传到C/C++进行处理 Java部分 public static native boolean greenBitmap(Bitmap bitmap); C/C++部分 JNIEXPORT jboolean JNICALL Java_com_test_Test_gree......

国仔饼 ⋅ 5分钟前 ⋅ 0

一次性让你懂async/await,解决回调地狱

什么是async? 欢迎留言讨论 async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。相较于 Generator,async 函数的改进在于下面四点: 内置执...

阿K1225 ⋅ 5分钟前 ⋅ 0

angular常用命令

.下载更新操作 1.利用npm下载angular的命令行工具AngularCLI: npm install -g @angular/cli 2.下载jquery: npm install --save jquery 3.更新npm: npm i -g npm 4.更新angular: ng update ......

消散了的诗意 ⋅ 8分钟前 ⋅ 0

window.print 页面打印

定义和用法 print() 方法用于打印当前窗口的内容。 语法 window.print(); window.print() 实际上,是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样,不能精确分页,不能设置纸型...

初学者的优化 ⋅ 8分钟前 ⋅ 0

魔兽世界 7.0版本上 PVE装备全攻略

  T套 因为大家应该都会打穿副本的所以具体是哪个boss我就不说了。   T1: 所有套装都在【熔火之心】出   T2: 头原来是在【奥妮克希亚的巢穴】改到黑翼之巢的奈法利安了,腿是在【熔火之...

wangchen1999 ⋅ 9分钟前 ⋅ 0

java.math.BigDecimal使用小结

原文地址 java.math.BigDecimal使用小结 divide方法 使用BigDecimal.divide方法时一定要考虑: 除数是否为0 商是否是无限小数 正确的使用方式 判断除数是否为0,是0做另外的处理逻辑 调用除法...

666B ⋅ 12分钟前 ⋅ 0

关于qstring转char乱码问题。

if (OpenClipboard(NULL)) { HGLOBAL hgClip; EmptyClipboard(); QByteArray byay = FValue.toLocal8Bit(); //转latin编码 char *bochsrc_line = byay.data(); hgClip = GlobalAlloc(GMEM_DD......

backtrackx ⋅ 12分钟前 ⋅ 0

了解SSH加密和连接过程

介绍 SSH或安全shell是安全协议,也是安全管理远程服务器的最常用方式。通过使用多种加密技术,SSH提供了一种机制,用于在双方之间建立加密安全连接,对彼此进行身份验证,以及来回传递命令和...

吴伟祥 ⋅ 18分钟前 ⋅ 0

微信小程序

小程序的基础配置:导航栏和tabbar 在app.json文件中配置导航栏和tabrbar 导航栏的设置 设置导航,背景黑色,文字白色,文字内容 { "pages":[ "pages/index/index", "pages/logs/l...

上官清偌 ⋅ 21分钟前 ⋅ 0

【转】百度坐标坐标系之间的转换(JS版代码)

/** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换 *///定义一些常量var x_PI = 3.1415926535897932...

HAVENT ⋅ 23分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部