Hadoop初学(3)_ant编译eclipse-plugin

作者: woshiliant
发布时间:2015-07-21 10:16:26

昨天在使用ant生成eclipse-plugin的时候,直接进入到${HADOOP_ROOT}/src/contrib/eclipse-plugin下使用ant命令,发现无法生成,之后在网上找到了一篇针对hadoop-1.1.2版本进行ant编译的文章,虽然我使用的是hadoop1.0.0,但是依照文中指定位置的文件,分别进行修改,确实可以成功编译了。故将这篇文章引用过来,为更多人服务。但是,由于版本不同,具体的jar包也会略有差异,为了方便用hadoop1.0.0的朋友使用,在下面也将我的相对位置的文件的修改内容附上。


网上参考贴:http://www.cnblogs.com/chenying99/archive/2013/05/09/3069228.html


修改1:${hadoop.root}/src/contrib目录的build-contrib.xml

 <!--2013/12/29:begin ant eclipse-plugin-->
  <property name="eclipse.home" location="/usr/tools/eclipse"/>
  <property name="version" value="1.0.0"/>
  <!--end ant eclipse-plugin-->


修改2:${hadoop.root}/src/contrib/eclipse-plugin目录下的build.xml

<!-- Override jar target to specify manifest -->
  <target name="jar" depends="compile" unless="skip.contrib">
    <mkdir dir="${build.dir}/lib"/>
    <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
    <!--<copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>-->

    <!--2013/12/29: ant eclipse-plugin for hadoop-->
    <copy file="${hadoop.root}/lib/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    <!-- ...jar...hadoop-eclipse-1.1.2.jar. -->
    <copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-core-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>
    <!--2013/12/29: ant eclipse-plugin for hadoop-->

    <jar
      jarfile="${build.dir}/hadoop-${name}-${version}.jar"
      manifest="${root}/META-INF/MANIFEST.MF">
      <fileset dir="${build.dir}" includes="classes/ lib/"/>
      <fileset dir="${root}" includes="resources/ plugin.xml"/>
    </jar>
  </target>

<!-- Override classpath to include Eclipse SDK jars -->
  <path id="classpath">
    <pathelement location="${build.classes}"/>
    <pathelement location="${hadoop.root}/build/classes"/>
    <path refid="eclipse-sdk-jars"/>

    <!--2013/12/29:begin ant eclipse-plugin for hadoop-->
    <pathelement location="${hadoop.root}/hadoop-core-1.0.0.jar"/>
    <!--2013/12/29:begin ant eclipse-plugin for hadoop-->
  </path>


修改3:${hadoop.root}/src/contrib/eclipse-plugin/META-INF目录下MANIFEST.MF,此处需注意,各个jar包之间由逗号相隔,且没有空格或回车符,否则,ant编译虽然能过,但会导致新建hadoop location的时候,出现没有反应的现象。

Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-configuration-1.6.jar,lib/commons-httpclient-3.0.1.jar,lib/commons-lang-2.4.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar


版权声明:本文为博主原创文章,未经博主允许不得转载。

标签: Eclipse Hadoop
来源:http://blog.csdn.net/woshiliant/article/details/17684959

推荐: