我用的是 shadowJar
gradle目标由com.github.johnrengelman.shadow gradle插件提供,用于构建需要 org.apache.hive.jdbc.HiveDriver
使用 Impala 连接到Kudu。
问题是,当我使用标准方法在scala中导入驱动程序时:
Class.forName("org.apache.hive.jdbc.HiveDriver")
shadow插件将其从结果jar中删除,这意味着运行时错误为: java.lang.ClassNotFoundException: org.apache.hadoop.hive.jdbc.HiveDriver
.
我的 build.gradle
包含:
dependencies {
implementation {
"org.apache.hive:hive-jdbc:1.2.1"
}
}
如何指示shadow插件不删除通过字符串注入的所需依赖项?
1条答案
按热度按时间0h4hbjxa1#
我发现解决方案是包含静态类型而不是via
Class.forName
,但通过导入使用代码:通过这种方式,shadow插件被正式告知驱动程序实际上是必需的。