首页 > 解决方案 > 将ojdbc添加到maven项目

问题描述

我正在使用 alfresco-amp-archetype 在 Alfresco Content Services 6.1.1 中创建自定义文档库操作。我想从外部 Oracle 数据库访问数据。

我正在使用来自以下网址的 ojdbc 库:https ://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc8/12.2.0.1

由于 maven 无法自行下载依赖项,因此我将 jar 放入我的项目中并将其添加到 pom 中(我也将其添加到了 tomcat/lib 目录中):

<dependency>
     <groupId>com.oracle.jdbc</groupId>
     <artifactId>ojdbc</artifactId>
     <version>8</version>
     <scope>system</scope>
     <systemPath>${project.basedir}/src/main/resources/ojdbc8-12.2.0.1.jar</systemPath>
</dependency>

当我调用该操作时,我得到“java.sql.SQLException:没有为 jdbc:oracle:thin 找到合适的驱动程序”

我应该如何将驱动程序添加到我的项目中才能正常工作?

标签: javamaventomcatalfrescoojdbc

解决方案


您使用的系统范围更倾向于包含 java 本身提供的东西,并且是一个已弃用的功能。

由于许可证限制,该 jar 不在通常的 maven 存储库中。因此,它需要位于具有私人访问权限的地方。

如果您没有运行像sonatype nexusjfrog artifactory这样的 maven 存储库代理,我建议您将 jar 复制到您自己的 maven 存储库中:maven deploy into local repository (最好在一个小脚本中重复或共享)。

不要将其存储在src/main/resources其中 - 那里的所有内容都将添加到您创建的工件中。选择另一个文件夹(例如 src 旁边的“依赖项”),然后将其复制到本地 maven 存储库后,将该 jar 用作正常依赖项(删除范围和 systemPath)。默认范围是编译,因此 jar 将包含在您的类路径中,因此驱动程序应该可用(我假设您创建了某种战争文件?)。

所以也不需要手动将它直接添加到tomcat中——而是通过war文件引入。


推荐阅读