在Maven Java项目中使用SQLcl遇依赖问题,求正确配置方法
正确配置SQLcl到Maven Java项目的步骤
我之前也碰到过类似的坑,SQLcl的依赖因为不在Maven中央仓库,手动配置确实容易出问题,给你梳理下完整的解决流程:
1. 手动安装SQLcl相关JAR到本地Maven仓库
SQLcl的核心JAR(dbtools-common.jar、dbtools-http.jar、dbtools-sqlcl.jar)和你已经下载的ucp.jar都需要手动安装到本地Maven仓库,步骤如下:
- 打开终端,进入你解压的SQLcl的
sqlcl/lib目录(就是包含那几个dbtools开头JAR的目录) - 依次执行以下Maven命令,把每个JAR安装到本地仓库:
这里的版本号# 安装dbtools-common.jar mvn install:install-file -Dfile=./dbtools-common.jar -DgroupId=com.oracle.sqlcl -DartifactId=dbtools-common -Dversion=19.4.0 -Dpackaging=jar # 安装dbtools-http.jar mvn install:install-file -Dfile=./dbtools-http.jar -DgroupId=com.oracle.sqlcl -DartifactId=dbtools-http -Dversion=19.4.0 -Dpackaging=jar # 安装dbtools-sqlcl.jar mvn install:install-file -Dfile=./dbtools-sqlcl.jar -DgroupId=com.oracle.sqlcl -DartifactId=dbtools-sqlcl -Dversion=19.4.0 -Dpackaging=jar # 安装ucp.jar(注意groupId对应Oracle官方最新分组) mvn install:install-file -Dfile=./ucp.jar -DgroupId=com.oracle.database.jdbc -DartifactId=ucp -Dversion=19.4.0 -Dpackaging=jar19.4.0要和你下载的SQLcl版本保持一致,避免版本冲突。
2. 在你的项目POM.xml中添加依赖
打开你自己的Maven项目的pom.xml,添加以下依赖配置:
<dependencies> <!-- SQLcl核心依赖 --> <dependency> <groupId>com.oracle.sqlcl</groupId> <artifactId>dbtools-common</artifactId> <version>19.4.0</version> </dependency> <dependency> <groupId>com.oracle.sqlcl</groupId> <artifactId>dbtools-http</artifactId> <version>19.4.0</version> </dependency> <dependency> <groupId>com.oracle.sqlcl</groupId> <artifactId>dbtools-sqlcl</artifactId> <version>19.4.0</version> </dependency> <!-- UCP连接池依赖 --> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ucp</artifactId> <version>19.4.0</version> </dependency> </dependencies>
3. 修复IntelliJ无法导入ScriptParser的问题
做完上面两步后,还需要让IntelliJ正确识别依赖:
- 点击IntelliJ右侧Maven面板的Reload All Maven Projects按钮(就是那个刷新图标),让IDE重新加载依赖。
- 如果还是找不到
ScriptParser类,先确认这个类确实在dbtools-sqlcl.jar里(可以用解压工具打开JAR查看),然后检查本地Maven仓库中对应的JAR是否已经安装成功(路径一般是~/.m2/repository/com/oracle/sqlcl/dbtools-sqlcl/19.4.0/)。 - 最后可以尝试清理IntelliJ缓存:点击
File -> Invalidate Caches...,选择"Invalidate and Restart",重启IDE后应该就能正常识别了。
补充说明
你之前直接在SQLcl的lib目录执行mvn validate或mvn clean install是没用的,因为SQLcl本身的lib目录并不是一个标准的Maven项目,这些命令无法自动把JAR安装到你的本地仓库,必须手动执行install:install-file命令才行。
内容的提问来源于stack exchange,提问作者W0lfw00ds
相关产品推荐
相关产品推荐

