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