Java 删除配置单元UDF中无用的依赖项

Java 删除配置单元UDF中无用的依赖项,java,hadoop,hive,Java,Hadoop,Hive,我正在为JavaMaven项目中的配置单元编写一组用户定义函数(UDF) 我正在使用maven汇编插件生成一个uber jar。然而,我也包括了大量的依赖项,我确信hive在它的类路径上已经有了依赖项,例如SLF4j 有没有一种简单的方法(工具)来知道配置单元类路径上已经有什么?我正在使用Horton Works的HDP2.2依赖性:Maven依赖性插件中的分析将有所帮助 dependency:analyze分析此项目和 确定哪些是:使用和声明的;使用和未申报;未使用 并宣布 依赖关系:树是另

我正在为JavaMaven项目中的配置单元编写一组用户定义函数(UDF)

我正在使用maven汇编插件生成一个uber jar。然而,我也包括了大量的依赖项,我确信hive在它的类路径上已经有了依赖项,例如SLF4j


有没有一种简单的方法(工具)来知道配置单元类路径上已经有什么?我正在使用Horton Works的HDP2.2依赖性:Maven依赖性插件中的分析将有所帮助

dependency:analyze
分析此项目和 确定哪些是:使用和声明的;使用和未申报;未使用 并宣布

依赖关系:树是另一个可能有用的东西。这有一些工具可以让您自己进行分析

dependency:tree
显示此项目的依赖关系树


获取包含在配置单元类路径中的所有JAR列表的查询为:

hive> list jars;
输出将如下所示

file:/usr/local/…..*.jar
/usr/local/…..*.jar

带有file:prefix的jar位置是默认情况下在类路径中可用的位置。其他的由用户使用addjar命令显式添加。

这很有用,也是解决方案的一部分。然而,我已经知道了这些工具,所以增加的是有一个正确的方法来知道配置单元类路径上已经有了什么。例如,slf4j JAR可能已经在配置单元类路径上,但在另一个版本中。不,不是。我相信这个命令只列出使用
addjar[…]
显式添加的JAR(至少在我的例子中是这样)。