1

我通常在不同的 jar 文件中有公共/共享库和实际工作代码。是否可以只重新编译一个作业 jar 文件来执行 hadoop 命令hadoop jar asd?如果没有,是否有简化 jar 包装的解决方法?

4

2 回答 2

1

我正在使用 Ant 制作工作 jar。要在 buildConfig.xml 文件中包含所有公共/共享库,您必须添加这样的行:

<zipgroupfileset dir="pathToAllCommonAndSharedLibraries" includes="**/*.jar" />

这是构建配置文件的最简单示例。

<?xml version="1.0" encoding="UTF-8"?>
<project name="Example.makejar" default="jar" basedir=".">
    <target name="jar">
        <jar destfile="Example.jar" basedir="bin">
            <manifest></manifest>
            <zipgroupfileset dir="pathToAllCommonAndSharedLibraries" includes="**/*.jar" />
        </jar>
    </target>
</project>
于 2012-06-06T12:54:24.100 回答
0

我不确定 hadoop 对此的支持,我稍后会问,但这里是解决方法:如果您使用 maven 构建您的工作项目,使用 maven shade 插件或 maven 程序集插件将所有依赖项嵌入到 jar 文件中,这样您将只部署一个文件。

于 2012-06-06T08:26:35.490 回答