一:环境:
1.1. 安装jdk,配置环境变量,验证:进入cmd环境,输入java -version验证
C:\WINDOWS\system32>java -version java version "1.8.0_40" Java(TM) SE Runtime Environment (build 1.8.0_40-b25) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
1.2. 安装maven,验证:进入cmd环境,输入mvn验证
C:\WINDOWS\system32>mvn -v Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00) Maven home: E:\java\apache-maven-3.5.0\bin\.. Java version: 1.8.0_40, vendor: Oracle Corporation Java home: E:\Program Files\Java\jdk1.8\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"
1.3. 安装cygwin ( 编译需要用到bash ,官网:https://cygwin.com/install.html 安装笔记参考...
安装完成后将cygwin/bin目录加入到系统环境变量PATH中,重启eclipse(ides)
验证:进入cmd环境,输入bash,跳转到cygwin环境中即安装成功。
C:\Windows\System32>bash
admin@DESKTOP-234IJAK /cygdrive/c/Windows/System32
二:源码编译
2.1 从github中下载hbase源码( 本人编译源码的版本为hbase2.0),导入eclpse.
2.2 在eclipse中编译单个模块(编译整个模块有可能报错),先编译hbase-thrift(无依赖), hbase-common(需要bash环境)进行验证
在改包目录下执行 mvn clean install -DskipTests 或者在eclpse中邮件项目 -> Run As -> Maven build -> Main -> goals中输入clean install -DskipTests, 点击Run
编译执行结果如下:
2.3 编译hbase-common如果遇到不能执行bash的问题
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (generate) on project hbase-common:
An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "bash": CreateProcess error=2, 系统找不到指定的文件。 -> [Help 1]
可以依次尝试设置cygwin的环境变量:a. 同时添加到用户的环境变量PATH中, b. 将环境变量放在最前面 c.重启电脑(我最后是重新后可以的)。
2.3.1 网友反馈的src/saveVersion.sh中 whoami的问题,我在使用了cygwin后试验了一下,即使不设置固定值也是可以的。
2.4 编译hbase-common没有问题后,可以编译hbase-client或者 hbase-server。
编译整个hbase项目时。遇到几个模块编译失败,暂时是注释掉了,也不影响看源码。
mvn package -Dmaven.test.skip.exec=true
mvn clean package -DskipTests assembly:single