一:環境:
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