最近想对hadoop的源码进行修改,发现ant编译工具非常重要,所以就找了一些资料学习了一下。
但在使用过程中,还是遇到了很多问题,在这里记录下来。
先简单看看几个ant的简单介绍:
http://chenchuxin.iteye.com/blog/141355
尝试编译了Hello world.java,成功!大致明白了xml文件的编写,但是在编写Hadoop的XML文件时,还是遇到了问题:
报错:[java] Could not find testio.TestIO. Make sure you have it in your classpath.
查找到资料:
http://lengjianxxxx.blog.163.com/blog/static/811884020085793449669/
http://wenku.baidu.com/view/b247f7b369dc5022aaea00c5.html
我在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>
成功!