我通常在不同的jar文件中有公共/共享库和实际的作业代码。是否可以重新编译一个作业jar文件来执行hadoop命令hadoop jar asd
?
如果不是,有简化罐子包装的解决方法吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
我不确定hadoop支持这个,我稍后会问,但是这里是解决方法:如果你使用maven来构建你的工作项目,使用maven shade插件或maven程序集插件将所有依赖项嵌入到jar文件,以便您只部署一个文件。