windows 中 hadoop2.7.5 在eclipse上的插件编译

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013050790/article/details/79262629

1、下载插件源码

https://github.com/winghc/hadoop2x-eclipse-plugin

2、下载ant1.10.1

http://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.10.1-bin.tar.gz

3、配置ant环境变量

ANT_HOME

E:\apache-ant-1.10.1-bin\apache-ant-1.10.1

path:增加%ANT_HOME%\bin

%JAVA_HOME%\bin;%M2_HOME%\bin;%ANT_HOME%\bin;----

4、下载hadoop-2.7.5和hadoop2x-eclipse-plugin插件,解压

5、配置编译插件

 进入到hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin\build.xml文件中,找到

<target name="jar" depends="compile" unless="skip.contrib">这一行

往下找

 <copy file="${hadoop.home}/share/hadoop/common/lib/htrace-core-${htrace.version}.jar"  todir="${build.dir}/lib" verbose="true"/>

修改为

 <copy file="${hadoop.home}/share/hadoop/common/lib/htrace-core-${htrace.version}-incubating.jar"  todir="${build.dir}/lib" verbose="true"/>

然后在此之后再增加以下两行

<copy file="${hadoop.home}/share/hadoop/common/lib/servlet-api-${servlet-api.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
 <copy file="${hadoop.home}/share/hadoop/common/lib/commons-io-${commons-io.version}.jar"  todir="${build.dir}/lib" verbose="true"/>

然后再找到

<jar
      jarfile="${build.dir}/hadoop-${name}-${hadoop.version}.jar"
      manifest="${root}/META-INF/MANIFEST.MF">

      <manifest>
   <attribute name="Bundle-ClassPath" 
    value="classes/, ------------这一行


追加以下两行

 lib/servlet-api-${servlet-api.version}.jar,
 lib/commons-io-${commons-io.version}.jar,

并将lib/htrace-core-${htrace.version}.jar

替换为lib/htrace-core-${htrace.version}-incubating.jar

6、hadoop2x-eclipse-plugin-master\src\ivy\libraries.properties文件中,更改下列属性和其值使其对应hadoop2.7.5和当前环境的jar包版本,按以下配置文件中的版本好:
     hadoop.version=2.7.2       ------Hadoop版本号
     apacheant.version=1.10.1   -------ant版本号
     commons-collections.version=3.2.2
     commons-httpclient.version=3.1
     commons-logging.version=1.1.3
     commons-io.version=2.4
     slf4j-api.version=1.7.10
     slf4j-log4j12.version=1.7.10
7. hadoop2x-eclipse-plugin-master\ivy\libraries.properties文件中,属性和值的修改同上面的2.。另外需要增加一个修改:
     htrace.version=3.1.0

8、然后执行

ant jar -Dversion=2.7.5 -Declipse.home=D:\eclipseOXY\eclipse-jee-oxygen-R-win32-x86_64\eclipse -Dhadoop.home=E:\Hadoop\hadoop-2.7.5


-Declipse.home是eclipse路径

-Dhadoop.home是Hadoop所在路径

如果遇到ivy-resolve-common:位置会有短暂的停顿,等待即可。一般不会超过2分钟,如果时间太长,中断操作,然后检查配置文件是否出错

正常编译通过如下:

check-contrib:


init:
     [echo] contrib: eclipse-plugin


init-contrib:


ivy-probe-antlib:


ivy-init-antlib:


ivy-init:
[ivy:configure] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/ ::
[ivy:configure] :: loading settings :: file = E:\Hadoop\hadoop2x-eclipse-plugin-master\ivy\ivysettings.xml


ivy-resolve-common:


ivy-retrieve-common:
[ivy:cachepath] DEPRECATED: 'ivy.conf.file' is deprecated, use 'ivy.settings.file' instead
[ivy:cachepath] :: loading settings :: file = E:\Hadoop\hadoop2x-eclipse-plugin-master\ivy\ivysettings.xml


compile:
     [echo] contrib: eclipse-plugin
   
[javac] E:\Hadoop\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin\build.xml:76: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds


jar:
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\slf4j-log4j12-1.7.10.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\slf4j-log4j12-1.7.10.jar
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\slf4j-api-1.7.10.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\slf4j-api-1.7.10.jar
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\guava-11.0.2.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\guava-11.0.2.jar
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\hadoop-auth-2.7.5.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\hadoop-auth-2.7.5.jar
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\netty-3.6.2.Final.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\netty-3.6.2.Final.jar
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\htrace-core-3.1.0-incubating.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\htrace-core-3.1.0-incubating.jar
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\servlet-api-2.5.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\servlet-api-2.5.jar
     [copy] Copying 1 file to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib
     [copy] Copying E:\Hadoop\hadoop-2.7.5\share\hadoop\common\lib\commons-io-2.4.jar to E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\lib\commons-io-2.4.jar
      [jar] Building jar: E:\Hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\hadoop-eclipse-plugin-2.7.5.jar


BUILD SUCCESSFUL
Total time: 31 seconds


会出现以下警告 [javac] E:\Hadoop\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin\build.xml:76: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds,上方的日志

解决方案:

  <javac
     encoding="${build.encoding}"
     srcdir="${src.dir}"
     includes="**/*.java"
     destdir="${build.classes}"
     debug="${javac.debug}"
     deprecation="${javac.deprecation}"  
includeantruntime="on">  增加此字段即可,重新编译
     <classpath refid="classpath"/>
    </javac>

解决  <javac
     encoding="${build.encoding}"
     srcdir="${src.dir}"
     includes="**/*.java"
     destdir="${build.classes}"
     debug="${javac.debug}"
     deprecation="${javac.deprecation}"  
includeantruntime="on">
     <classpath refid="classpath"/>
    </javac>






猜你喜欢

转载自blog.csdn.net/u013050790/article/details/79262629
今日推荐