Maven:Oracle JDBC驱动程序

3
我知道这个问题已经被问了很多次,但是没有一个解决方案适用于我。我有一个Maven依赖项来获取OJDBC jar文件用于我的项目。该依赖项如下所示:
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>

这个jar文件已经被成功下载到了.m2文件夹中,同时也出现在项目的maven依赖项中。我知道它已经顺利获取了,因为如果我从pom.xml中删除它,它也会从maven依赖项中删除。然而,无论我做了什么,我都无法摆脱以下错误:

Missing artifact com.oracle:ojdbc6:jar:11.2.0.3

请问有人能帮忙吗?这在我所有的项目中都是一样的!!!

这段话与IT技术无关。

你只有一个pom.xml文件吗?也许是某个地方打错了字?尝试使用mvn clean package -U命令。 - Adrian
我认为你需要展示一下pom文件以及运行maven命令时的一些调试输出。 - Paaske
我每个项目都有一个pom.xml文件。在右键单击项目->maven下没有这个选项。 - DaRoGa
即使jar文件存在,它可能是空的,或者至少缺少实际的驱动程序。 - Paaske
我刚刚手动下载了驱动程序的一个版本,并将其放置在.m2存储库中,在刷新了eclipse中的所有内容后,问题仍未解决。 - DaRoGa
显示剩余2条评论
2个回答

2
由于二进制许可证的原因,Oracle驱动程序不在Maven中央仓库中。您可以找到一些公共存储库来托管该JAR文件以供使用,但这是违法的,因为许可证要求如此。
明显地,它正在查找JAR文件并将其下载到我的.m2文件夹中。有可能存在某些原因(或至少您认为存在某些原因):
1.每当Maven无法找到某个JAR文件(由于任何原因),它都会在“ .m2/”中生成maven2层次结构的文件夹,但是如果您仔细查看,就会注意到它不完全是一个JAR文件,而是其扩展名将类似于“ someJarName.1.1.1.jar.lastUpdated”。这不是一个JAR文件,这只是Maven用来跟踪需要重新下载和重新检查哪些JAR文件的惯例。
2.第二种可能性是该JAR文件必须已通过mvn install:install-file命令手动插入存储库,这就是它存在的原因。当然,我假设除了默认的mvn central之外,您没有配置其他存储库。
如果您在本地m2 repo中具有JAR文件(我建议您通过扩展它来验证,确保所有包内容都按顺序排列,并且JAR文件的大小正确),则可能必须告诉Eclipse再次查找JAR文件。要执行此操作,请转到“窗口” -> “首选项” -> “Maven” -> “用户设置” -> 点击“重新索引”按钮,并等待几分钟。然后看看这是否有助于解决您的问题。
另一个可能的解决方案是使用“系统”范围并指定本地计算机上JAR文件的路径,尽管我强烈反对这样做。

Jar文件的大小为2,651kb,末尾没有最新更新的扩展名。它只是.jar,我已经重新索引了,但没有效果。如何“扩展”jar文件? - DaRoGa
好的,我要拿这个和什么进行比较? - DaRoGa
完成后,这两个文件看起来完全相同。具有相同的类和相同的大小。 - DaRoGa
我无法进行系统修复,因为它最终不会在这台电脑上运行。 - DaRoGa
将.m2/目录中的jar包及其父文件夹删除(移动到其他地方),然后运行“maven clean install”命令。我想在日志中看到maven的输出。 - Saif Asif
显示剩余4条评论

0

实际上,由于某些二进制许可证问题,Oracle驱动程序似乎并没有在Maven仓库中。

简而言之,您需要手动下载jar文件并将其安装到本地的Maven仓库中。

请参考此答案:在Maven仓库中查找Oracle JDBC驱动程序


它在公司的代码库中,并且正在从那里下载。如果它没有被下载,我会理解给出那个答案,但显然它正在找到jar文件并将其下载,因为它在我的.m2文件夹中。 - DaRoGa
好的,很高兴看到您解决了问题! - Paaske

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接