Hadoop Eclipse 插件编译安装
最近开始学习Hadoop,hadoop 的新版本为了能和各个eclipse 的版本兼容,因此只提供了源代码,开发人员需要手动编译。
hadoop eclipse 插件的源代码位于$HADOOP_HOME/src/contrib/eclipse-plugin 下面。
如果只想单独编译hadoop 的ecliose 插件那么需要修改该目录下面的build.xml 文件
下面是我的一个配置文件,大家可以根据自己的环境修改,编译过程需要用到eclipse的目录以及hadoop的lib下面的相关jar文件,所以需要在此配置,注意改成你的hadoop所对应的版本。
Xml代码
01 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
02 |
<project default="jar" name="eclipse-plugin"> |
03 |
<property name="name" value="${ant.project.name}"/> |
04 |
<property name="root" value="${basedir}"/> |
05 |
<property name="hadoop.root" location="/home/chengxw/hadoop-1.2.0"/> |
06 |
<property name='version' value='1.2.0'/> |
07 |
<property name='eclipse.home' location='/home/chengxw/soft/eclipse'/> |
08 |
<property name="build.dir" location="${hadoop.root}/build/contrib/${name}"/> |
09 |
<property name="build.classes" location="${build.dir}/classes"/> |
10 |
<property name="src.dir" location="${root}/src/java"/> |
11 |
|
12 |
<path id="eclipse-sdk-jars"> |
13 |
<fileset dir="${eclipse.home}/plugins/"> |
14 |
<include name="org.eclipse.ui*.jar"/> |
15 |
<include name="org.eclipse.jdt*.jar"/> |
16 |
<include name="org.eclipse.core*.jar"/> |
17 |
<include name="org.eclipse.equinox*.jar"/> |
18 |
<include name="org.eclipse.debug*.jar"/> |
19 |
<include name="org.eclipse.osgi*.jar"/> |
20 |
<include name="org.eclipse.swt*.jar"/> |
21 |
<include name="org.eclipse.jface*.jar"/> |
22 |
<include name="org.eclipse.team.cvs.ssh2*.jar"/> |
23 |
<include name="com.jcraft.jsch*.jar"/> |
24 |
</fileset> |
25 |
</path> |
26 |
<!-- Override classpath to include Eclipse SDK jars --> |
27 |
<path id="classpath"> |
28 |
<fileset dir="${hadoop.root}"> |
29 |
<include name="*.jar"/> |
30 |
</fileset> |
31 |
<path refid="eclipse-sdk-jars"/> |
32 |
</path> |
33 |
34 |
<target name="compile"> |
35 |
<mkdir dir="${build.dir}/classes"/> |
36 |
<javac |
37 |
encoding="ISO-8859-1" |
38 |
srcdir="${src.dir}" |
39 |
includes="**/*.java" |
40 |
destdir="${build.classes}" |
41 |
debug="on" |
42 |
deprecation="off"> |
43 |
<classpath refid="classpath"/> |
44 |
</javac> |
45 |
</target> |
46 |
<!-- Override jar target to specify manifest--> |
47 |
<target name="jar" depends="compile"> |
48 |
<mkdir dir="${build.dir}/lib"/> |
49 |
<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> |
50 |
<copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/> |
51 |
<copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/> |
52 |
<copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/> |
53 |
<copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/> |
54 |
<copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/> |
55 |
<copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/> |
56 |
<jar |
57 |
jarfile="${build.dir}/hadoop-${name}-${version}.jar" |
58 |
manifest="${root}/META-INF/MANIFEST.MF"> |
59 |
<fileset dir="${build.dir}" includes="classes/ lib/"/> |
60 |
<fileset dir="${root}" includes="resources/ plugin.xml"/> |
61 |
</jar> |
62 |
</target> |
63 |
</project> |
然后执行 ant jar
编译后的文件位于:$HADOOP_HOME/build/contrib/eclipse-plugin 下面
这时候插件还不能使用,还需要修改 jar 文件中的 META-INF/MANIFEST.MF文件
将
Bundle-ClassPath:classes/,lib/hadoop-core.jar
修改为:
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
大家注意这些jar 文件的版本和你的hadoop 中的版本对应。
将编译后的hadoop-eclipse-plugin-1.2.0.jar 文件,复制到eclipse 的 plugins 下面即可。
原文地址:http://my.oschina.net/cxw1990/blog/131872

浙公网安备 33010602011771号