最近想对hadoop的源码进行修改,发现ant编译工具非常重要,所以就找了一些资料学习了一下。
但在使用过程中,还是遇到了很多问题,在这里记录下来。
先简单看看几个ant的简单介绍:
尝试编译了Hello world.java,成功!大致明白了xml文件的编写,但是在编写Hadoop的XML文件时,还是遇到了问题:
报错:[java] Could not find testio.TestIO. Make sure you have it in your classpath.
查找到资料:
我在src中新加入了一个IO输出的测试包testio,编写了一个TestIO.java类。想要加入到build.xml中运行。
以下是我修改的build.xml文件,加入:
<!-- Add testio.scr.dir -->
<property name="testio.dir" value="${basedir}/src/testio"/> <property name="build.testio" value="${basedir}/build/testio"/> <!-- Add testio.scr.dir --><!-- ================================================================== -->
<!-- Add Compile TestIO --> <!-- ================================================================== --> <!-- --> <!-- ================================================================== --> <target name="compile-testio" depends="init"> <javac srcdir="${testio.dir}" destdir="${build.classes}" includeantruntime="on"> <compilerarg line="${javac.args} ${javac.args.warnings}" /> <classpath refid="classpath"/> </javac> </target> <target name="build-testio" depends="compile-testio"> <jar jarfile="${build.dir}/testio.jar" basedir="${build.classes}"> </jar> </target> <target name="run-testio" depends="build-testio"> <java classname="testio.TestIO" classpath="${build.dir}/testio.jar"> </java> </target>成功!