之前项目一直采用Maven构建(Maven构建真正的J2EE项目)。最近在github下载一些源码来编译,发现很多项目都开始支持apache Ivy。至此以hadoop2x-eclipse-plugin为例,写篇文章记录一下。
Apache Ivy 是一个优秀的管理(记录、跟踪、解析和报告)项目依赖的工具,可与Apache Ant紧密集成。本篇以2.4.0版本为基础。
Apache Ivy安装环境
1,JDK
2,ANT
安装好上述两个,配置好环境变量,接下来开始安装Ivy。
安装Apache Ivy
1,下载Ivy,下载地址:http://ant.apache.org/ivy/download.cgi
2,解压Apache Ivy
3,解压后,将apache-ivy-2.4.0/ivy-2.4.0.jar拷贝到ANT_HOME/lib目录下
4,下载并安装
如果使用ant 1.6.0或者更高版本(本来之前安装的apache-ant-1.9.4)。可以直接在src/example/hello-ivy 目录并运行ant命令,如果构建成功,你就成功的安装了ivy。如下图:

如果使用ant1.5.1或者更高的版本,可以按如下例子修改bulid文件:
- 删除头部命名空间的:xmlns:ivy="antlib:org.apache.ivy.ant"
- 增加ivy任务的定义:
<taskdef name="ivy-configure" classname="org.apache.ivy.ant.IvyConfigure"/>
<taskdef name="ivy-resolve" classname="org.apache.ivy.ant.IvyResolve"/>
<taskdef name="ivy-retrieve" classname="org.apache.ivy.ant.IvyRetrieve"/>
<taskdef name="ivy-publish" classname="org.apache.ivy.ant.IvyPublish"/>
- 使用ivy-xxx替代ivy:xxx
如果构建成功,你就成功的安装了ivy。
编译hadoop2x-eclipse-plugin
下载地址:https://github.com/winghc/hadoop2x-eclipse-plugin
如遇如下错误:
[javac] D:\hadoop2x-eclipse-plugin-2.4.1\src\contrib\eclipse-plugin\build.xml:76: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 45 source files to D:\hadoop2x-eclipse-plugin-2.4.1\build\contrib\eclipse-plugin\classes
则将:
<target name="compile" 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}">
<classpath refid="classpath"/>
</javac>
</target>
改成
<target name="compile" 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="false">
<classpath refid="classpath"/>
</javac>
</target>
其他可能会遇到hadoop安装目录中jar版本不对应的情况,我们可以根据报错信息下载相对应的jar版本,然后替换掉hadoop安装目录的jar即可。
- cd src/contrib/eclipse-plugin
- ant jar -Dversion=2.4.1 -Dhadoop.version=2.4.1 -Declipse.home=E:\\tools\\eclipse -Dhadoop.home=E:\\tools\\hadoop-2.4.1
D:\hadoop2x-eclipse-plugin-2.4.1\src\contrib\eclipse-plugin>ant jar -Dversion=2.4.1 -Dhadoop.version=2.4.1 -Declipse.home=D:\\tools\\eclipse -Dhadoop.home=D:\\tools\\hadoop-2.4.1
Buildfile: D:\hadoop2x-eclipse-plugin-2.4.1\src\contrib\eclipse-plugin\build.xml
check-contrib:
init:
[echo] contrib: eclipse-plugin
init-contrib:
ivy-probe-antlib:
ivy-init-antlib:
ivy-init:
[ivy:configure] :: Apache Ivy 2.4.0 - 20141213170938 :: http://ant.apache.org/ivy/ ::
[ivy:configure] :: loading settings :: file = D:\hadoop2x-eclipse-plugin-2.4.1\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 = D:\hadoop2x-eclipse-plugin-2.4.1\ivy\ivysettings.xml
compile:
[echo] contrib: eclipse-plugin
jar:
[copy] Copying 1 file to D:\hadoop2x-eclipse-plugin-2.4.1\build\contrib\eclipse-plugin\lib
[copy] Copying D:\hadoop-2.4.1\share\hadoop\common\lib\htrace-core-3.0.4.jar to D:\hadoop2x-eclipse-plugin-2.4.1\build\contrib\eclipse-plugin\lib\htrace-core-3.0.4.jar
[jar] Building jar: D:\hadoop2x-eclipse-plugin-2.4.1\build\contrib\eclipse-plugin\hadoop-eclipse-plugin-2.4.1.jar
BUILD SUCCESSFUL
Total time: 7 minutes 13 seconds
编译成功,hadoop的eclipse的插件包在:${hadoop2x-eclipse-plugin}/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.4.1.jar
ivy.default.ivy.user.dir是Ivy的工作目录,默认情况下载user.home下面,Ivy默认下载的东西可以在这个目录查看。
参考:http://ant.apache.org/ivy/history/latest-milestone/install.html


本文介绍了如何使用Apache Ivy安装和编译hadoop2x-eclipse-plugin。首先确保具备JDK和ANT环境,然后下载Ivy,将其jar文件放入ANT的lib目录。通过运行ant命令进行安装验证。接着,详细讲述了如何解决编译hadoop2x-eclipse-plugin过程中遇到的问题,包括修改build文件和处理jar版本不对应的情况。最后,提供了编译成功后的插件位置和Ivy默认下载目录。
1148

被折叠的 条评论
为什么被折叠?



