Linux下编译Hadoop的Eclipse插件(2)

下文贴出整个XML,现在我们看第二大步的配置,修改build-contrib.xml,内容如下:

<!--  原始的为off -->
<property value="on"/>

第三步的修改MANIFEST.MF内容如下:

Bundle-ClassPath: classes/,lib/commons-cli.jar,lib/commons-httpclient.jar,lib/Hadoop-core.jar,lib/jackson-mapper-asl.jar,lib/commons-configuration.jar,lib/commons-lang.jar,lib/jackson-core-asl.jar

第四步执行命令:截图如下: 

Linux下编译Hadoop的Eclipse插件


 
最后,插件类生成的目录,截图如下: 

Linux下编译Hadoop的Eclipse插件


 
下面散仙给出所有配置的全部信息,以供参考,下图的是build.xml里面的内容

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!-- build.xml -->
<project default="jar">

<import file="../build-contrib.xml"/>


  <property location="/root/eclipse"/>
  <property value="1.2.0"/>
 
  <path>
    <fileset dir="${eclipse.home}/plugins/">
      <include/>
      <include/>
      <include/>
      <include/>
      <include/>
      <include/>
      <include/>
      <include/>

<include/>
      <include/>
    </fileset>
  </path>

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

<!-- Skip building if eclipse.home is unset. -->
  <target unless="eclipse.home">
    <property value="yes"/>
    <echo message="eclipse.home unset: skipping eclipse plugin"/>
  </target>

<target depends="init, ivy-retrieve-common" unless="skip.contrib">
    <echo message="contrib: ${name}"/>
    <javac
    encoding="${build.encoding}"
    srcdir="${src.dir}"
    includes="**/*.java"
    destdir="${build.classes}"
    debug="${javac.debug}"
    deprecation="${javac.deprecation}"
  includeantruntime="on">
    <classpath refid="classpath"/>
    </javac>
  </target>

<!-- Override jar target to specify manifest -->
  <target depends="compile" unless="skip.contrib">
    <mkdir dir="${build.dir}/lib"/>
  <!--  <copy file="${hadoop.root}/build/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"/>-->
  <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-cli-${commons-cli.version}.jar"  tofile="${build.dir}/lib/commons-cli.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  tofile="${build.dir}/lib/commons-configuration.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  tofile="${build.dir}/lib/commons-httpclient.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  tofile="${build.dir}/lib/commons-lang.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"  tofile="${build.dir}/lib/jackson-core-asl.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"  tofile="${build.dir}/lib/jackson-mapper-asl.jar" verbose="true"/>


  <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>

</project>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/31f5a11efe9a2f6d4eed7ad3730163a9.html