java - 将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 找到合适的驱动程序”
我应该如何将驱动程序添加到我的项目中才能正常工作?
解决方案
您使用的系统范围更倾向于包含 java 本身提供的东西,并且是一个已弃用的功能。
由于许可证限制,该 jar 不在通常的 maven 存储库中。因此,它需要位于具有私人访问权限的地方。
如果您没有运行像sonatype nexus或jfrog artifactory这样的 maven 存储库代理,我建议您将 jar 复制到您自己的 maven 存储库中:maven deploy into local repository (最好在一个小脚本中重复或共享)。
不要将其存储在src/main/resources
其中 - 那里的所有内容都将添加到您创建的工件中。选择另一个文件夹(例如 src 旁边的“依赖项”),然后将其复制到本地 maven 存储库后,将该 jar 用作正常依赖项(删除范围和 systemPath)。默认范围是编译,因此 jar 将包含在您的类路径中,因此驱动程序应该可用(我假设您创建了某种战争文件?)。
所以也不需要手动将它直接添加到tomcat中——而是通过war文件引入。
推荐阅读
- typescript - 使用云函数执行 if 语句
- visual-studio - MSBuild - 控制台(Exec)传递一个带有新行的大字符串作为参数
- php - Symfony 安全异常:$opsLimit 必须为 3 或更大
- python - 如何从没有(转义序列)字符串中的“\ufeff”和“\u3000”值的文件中正确读取日文字符?
- vb.net - VB.net - 导入证书,与私钥绑定并安装在 USB PKI 令牌上
- unix - 将 file2 中第一列中的模式替换为 file1 中 file2 中第二列中的模式
- html - 获取问题引导左侧菜单栏,想要添加下一个更多子菜单项
- javascript - 如何从 HTML/JS 中的不同域获取 cookie
- python - ValueError:样本大于总体或在使用 if 语句比较可能不同大小的列表时为负
- r - 查看饼图的大小与其框架和 R 中的其他元素的关系