【Zookeeper】Zookeeper原始碼環境搭建出現的問題
阿新 • • 發佈:2019-02-01
一、ant eclipse 時提示Connection reset
從GitHub下載下來的壓縮包不是eclipse版本的工程,我們需要使用ant eclipse命令編譯成eclipse版本的專案,執行過程提示Connection reset 是編譯檔案build.xml中的路徑不支援下載了。修改原始碼路徑下的build.xml檔案修改前:<get src="https://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
修改後:修改完成重新執行即可。<get src="http://ufpr.dl.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
二、匯入工程編譯之後報錯‘<>’operator is not allowed for source level below 1.7
匯入工程之後報錯85個,其中有多數都是這個錯誤,這個錯誤是編譯版本的原因。解決方法將編譯版本改成1.7,選中專案然後右鍵-->Properties-->Java Compiler 將編譯器版本修改為1.7 三、報錯提示“org.apache.zookeeper.version.Info can not be resolved to a type”
看了下其它的人搭建工程過程,在修改完編譯器之後就萬事大吉了,我這裡還有9個錯誤,發生在Version.Java中,這個類實現了Info這個介面,但是Info這個介面沒有找到。 解決方法是在org.apache.zookeeper.version.util包裡有個VerGen.java檔案,執行這個檔案來生成Info.Java,我理解這個是用來在Zookeeper每次釋出版本的時候用來固定生成版本號和日期的。在VerGen.Java的main方法上有提示傳入三個引數執行這個檔案,執行方式右鍵-->Run As-->Run Configuration-->JavaApplication-->Arguments 在Program arguments 中輸入三個引數我理解的第一個引數是版本號,第二個是GIT版本,第三個是釋出日期,所以我輸入的如下內容,三個引數空格隔開 執行成功之後控制檯是什麼也沒有列印的,重新整理工程會看見多了一個org目錄,該目錄下有了一個Info.Java 不知道為什麼沒有生成到包中,所以我手動建立了一個org.apache.zookeeper.version 包 然後將檔案拖了進去,世界就安靜了。建立包的時候如果報錯那麼選中下邊的Create package-info.java 生成之後刪了就可以了。/** * Emits a org.apache.zookeeper.version.Info interface file with version and * revision information constants set to the values passed in as command * line parameters. The file is created in the current directory. <br> * Usage: java org.apache.zookeeper.version.util.VerGen maj.min.micro[-qualifier] * rev buildDate * * @param args * <ul> * <li>maj - major version number * <li>min - minor version number * <li>micro - minor minor version number * <li>qualifier - optional qualifier (dash followed by qualifier text) * <li>rev - current Git revision number * <li>buildDate - date the build * </ul> */ public static void main(String[] args) { if (args.length != 3) printUsage(); try { Version version = parseVersionString(args[0]); if (version == null) { System.err.println( "Invalid version number format, must be \"x.y.z(-.*)?\""); System.exit(1); } String rev = args[1]; if (rev == null || rev.trim().isEmpty()) { rev = "-1"; } else { rev = rev.trim(); } generateFile(new File("."), version, rev, args[2]); } catch (NumberFormatException e) { System.err.println( "All version-related parameters must be valid integers!"); throw e; } }