Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Eclipse将所有外部类打包到我的jar中_Java_Eclipse_Maven_Hadoop - Fatal编程技术网

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

Java 使用Eclipse将所有外部类打包到我的jar中,java,eclipse,maven,hadoop,Java,Eclipse,Maven,Hadoop,我正在Eclipse中从事一个Hadoop项目,该项目依赖于我的另一个项目;我在构建路径中包含了另一个项目,但是当我导出依赖项目时,它只包含来自同一项目的类 通常,这不会是一个问题,因为我可以用-cp标志链接另一个项目,但Hadoop要求您将jar作为参数传递,这意味着我的所有依赖项都必须在该jar中 在Eclipse中,有没有一种方法可以从您所依赖的项目中自动构建和包含类 谢谢。您可以将项目导出为可运行的jar,如果您想要一个包含依赖项的jar,这将非常有用 选择项目。文件>导出。选择Java

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

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

在Eclipse中,有没有一种方法可以从您所依赖的项目中自动构建和包含类


谢谢。

您可以将项目导出为可运行的jar,如果您想要一个包含依赖项的jar,这将非常有用

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

见相关答案:

您可以使用自动生成、测试和导出。学习它需要一些时间,但它是值得的。
有可能的任务(fileset、zipgroupfileset、copy)将文件、jar(解压缩)或任何东西包含到最终的jar中。通过这种方式,您可以明确知道分发jar中的内容,并且不需要运行eclipe安装。

我建议您将maven作为一种构建工具。您可以在名为pom文件的文件中为每个项目定义依赖项和构建步骤。maven插件for Eclipse(m2e插件)可以在pom文件中进行配置,并设置Eclipse构建路径和项目描述,以便您可以访问Eclipse中其他项目中的类。Maven还可以为您创建一个jar,其中包含两个项目中的类(“带依赖项的jar”)

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

maven的一个缺点(也是许多关于maven的负面评论的原因)是最初的陡峭学习曲线可能令人沮丧。然而,您试图做的是非常简单的,我希望您能找到一些示例,精确地展示您想要做的事情

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