转载自http://blog.csdn.net/duotiger/article/details/11518575
插件源代码在hadoop/src/contrib/eclipse-plugin下面,需要修改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
- http://www.apache.org/licenses/LICENSE-2.0
- 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.
- -->
- <project default="jar" name="eclipse-plugin">
- <property name="name" value="${ant.project.name}" />
- <property name="root" value="${basedir}" />
- <property name="hadoop.root" location="E:/hadoop-1.2.1" />
- <property name='version' value='1.2.1' />
- <property name='eclipse.home' location='D:/eclipse' />
- <property name="build.dir" location="${hadoop.root}/build/contrib/${name}" />
- <property name="build.classes" location="${build.dir}/classes" />
- <property name="src.dir" location="${root}/src/java" />
- <!--import file="../build-contrib.xml"/-->
- <path id="eclipse-sdk-jars">
- <fileset dir="${eclipse.home}/plugins/">
- <include name="org.eclipse.ui*.jar"/>
- <include name="org.eclipse.jdt*.jar"/>
- <include name="org.eclipse.core*.jar"/>
- <include name="org.eclipse.equinox*.jar"/>
- <include name="org.eclipse.debug*.jar"/>
- <include name="org.eclipse.osgi*.jar"/>
- <include name="org.eclipse.swt*.jar"/>
- <include name="org.eclipse.jface*.jar"/>
- <include name="org.eclipse.team.cvs.ssh2*.jar"/>
- <include name="com.jcraft.jsch*.jar"/>
- </fileset>
- </path>
- <!-- 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"/>
- <fileset dir="${hadoop.root}">
- <include name="*.jar"/>
- </fileset>
- </path>
- <!-- Skip building if eclipse.home is unset. -->
- <target name="check-contrib" unless="eclipse.home">
- <property name="skip.contrib" value="yes"/>
- <echo message="eclipse.home unset: skipping eclipse plugin"/>
- </target>
- <target name="compile">
- <echo message="contrib: ${name}"/>
- <javac
- encoding="ISO-8859-1"
- srcdir="${src.dir}"
- includes="**/*.java"
- destdir="${build.classes}"
- debug="on"
- deprecation="off">
- <classpath refid="classpath"/>
- </javac>
- </target>
- <!-- 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}/lib/commons-cli-1.2.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/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true" />
- <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true" />
- <copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true" />
- <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib" 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>
MANIFEST.MF修改为:
- Manifest-Version: 1.0
- Bundle-ManifestVersion: 2
- Bundle-Name: MapReduce Tools for Eclipse
- Bundle-SymbolicName: org.apache.hadoop.eclipse;singleton:=true
- Bundle-Version: 0.18
- Bundle-Activator: org.apache.hadoop.eclipse.Activator
- Bundle-Localization: plugin
- Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.jdt.launching,
- org.eclipse.debug.core,
- org.eclipse.jdt,
- org.eclipse.jdt.core,
- org.eclipse.core.resources,
- org.eclipse.ui.ide,
- org.eclipse.jdt.ui,
- org.eclipse.debug.ui,
- org.eclipse.jdt.debug.ui,
- org.eclipse.core.expressions,
- org.eclipse.ui.cheatsheets,
- org.eclipse.ui.console,
- org.eclipse.ui.navigator,
- org.eclipse.core.filesystem,
- org.apache.commons.logging
- Eclipse-LazyStart: true
- Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/jackson-core-asl-1.8.8.jar ,lib/jackson-mapper-asl-1.8.8.jar, lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar, lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar
- Bundle-Vendor: Apache Hadoop
在hadoop目录下新建build/contrib/eclipse-plugin/classes目录。
ant编译,在build/contrib/eclipse-plugin/下面会生成hadoop-eclipse-plugin-1.2.1.jar文件,复制到eclipse的plugin目录下即可