使用Eclipse将我的jar中的所有外部类打包

时间:2012-06-08 23:32:03

标签: java eclipse maven hadoop

我正在Eclipse中开发一个依赖于我的另一个项目的Hadoop项目;我在构建路径中包含了另一个项目,但是当我导出依赖项目时,它只包含来自同一项目的类。

通常,这不会有问题,因为我可以将其他项目与-cp标志链接,但Hadoop要求您将jar作为参数传递,这意味着我的所有依赖项都必须在该jar内。

在Eclipse中,有没有办法自动构建和包含您依赖的项目中的类?

感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用Ant自动构建,测试和导出。它需要一些时间来学习它,但它的价值。 有可能的任务(文件集,zipgroupfileset,副本)包含文件,jar(解压缩)或最终jar中的任何内容。通过这种方式,您可以清楚地了解配送罐中的内容,并且您不需要运行eclipe安装。

答案 1 :(得分:1)

我建议你看一下maven作为构建工具。您可以在名为pom文件的文件中为每个项目定义依赖关系并构建步骤。 Eclipse的maven插件(m2e插件)可以在pom文件中进行配置并设置Eclipse构建路径和项目描述,以便您可以访问Eclipse中其他项目中的类。 Maven也可以为你创建一个jar,它有两个项目的类(“jar-with-dependencies”)。

在maven术语中,您的两个项目称为“工件”,其中一个项目依赖于另一个项目。

maven的一个缺点(以及关于maven的许多负面评论的原因)是最初陡峭的学习曲线,这可能令人沮丧。但是,你要做的事情是非常简单的,我希望你能找到一些例子,向你展示你想要做的事情。

第一步,就是我的答案,就是看看maven。它可能看起来过于复杂,但它可以扩展以处理您所需的任何构建配置,因为您的hadoop应用程序变得越来越复杂。

答案 2 :(得分:0)

您可以将项目导出为Runnable jar,如果您需要包含依赖项的单个jar,这可能很有用。

选择项目。文件>出口。选择Java部分。选择Runnable JAR文件。

见相关答案:

Eclipse: How to build an executable jar with external jar?