使用Gradle本地导入后找不到Vertica JDBC类

问题描述

我一直在尝试使用gradle将vertica JDBC添加到我的Java项目中。由于vertica JDBC不在任何存储库上,因此我不得不从他们的站点下载它,并尝试通过不同的方式在本地导入它:

compile files('lib/vertica-jdbc-10.0.0-0.jar')

implementation files('lib/vertica-jdbc-10.0.0-0.jar')

在本地安装它,然后像往常一样引用它:

mvn install:install-file "-Dfile=/path_to/vertica-jdbc-10.0.0.jar" "-DgroupId=com.vertica" "-DartifactId=vertica-jdbc" "-Dversion=10.0.0" "-Dpackaging=jar"

然后使用

compile 'com.vertica:vertica-jdbc:10.0.0' / implementation 'com.vertica:vertica-jdbc:10.0.0'

所有这些方法似乎都将其内置到我的jar中,并按预期与所有文件一起在/ com / vertica /下找到它。但是,使用该行时:

Class.forName("com.vertica.jdbc.Driver");

引发以下异常:

java.lang.ClassNotFoundException: com.vertica.jdbc.Driver
0 = {StackTraceElement@3115} "java.net.URLClassLoader.findClass(URLClassLoader.java:382)"
1 = {StackTraceElement@3116} "java.lang.ClassLoader.loadClass(ClassLoader.java:424)"
2 = {StackTraceElement@3117} "sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)"
3 = {StackTraceElement@3118} "java.lang.ClassLoader.loadClass(ClassLoader.java:357)"
4 = {StackTraceElement@3119} "java.lang.Class.forName0(Native Method)"
5 = {StackTraceElement@3120} "java.lang.Class.forName(Class.java:264)"

关于为什么找不到它的任何想法?我想象这是一个类路径问题,但是从我读过的实现命令来看,应该可以解决这个问题?

解决方法

解决我的误会。尝试运行项目时,我是通过intellij来执行的。 Intellij不是您的类,不是您通过gradle构建的任何jar,因此我需要通过intellij gui将jar添加为外部依赖项。尽管直接调用jar时,类是按预期包含的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...