【Zookeeper】Zookeeper源码环境搭建出现的问题

本文解决Ant Eclipse项目编译时遇到的Connection reset问题,通过修改build.xml文件中的下载链接解决;同时解决导入工程后出现的编译版本问题,通过调整编译器版本至1.7解决;最后解决因缺少Info类导致的错误,通过运行VerGen.java生成Info类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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方法上有提示

  /**
     * 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;
        }
    }

    传入三个参数运行这个文件,运行方式右键-->Run As-->Run Configuration-->JavaApplication-->Arguments 在Program arguments 中输入三个参数我理解的第一个参数是版本号,第二个是GIT版本,第三个是发布日期,所以我输入的如下内容,三个参数空格隔开
    
    运行成功之后控制台是什么也没有打印的,刷新工程会看见多了一个org目录,该目录下有了一个Info.Java 不知道为什么没有生成到包中,所以我手动创建了一个org.apache.zookeeper.version 包 然后将文件拖了进去,世界就安静了。创建包的时候如果报错那么选中下边的Create package-info.java 生成之后删了就可以了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值