Oracle JDBC 驅動因授權限制**不在 Maven Central**,專案需手動安裝至本地倉庫或私服。
| Oracle 版本 | JDK 版本 | 驅動檔名 | Maven 坐標建議 |
|---|---|---|---|
| 11.2.0.x (11gR2) | JDK 6/7/8 | ojdbc6.jar | com.oracle:ojdbc6:11.2.0.x |
| 12.1.0.x (12cR1) | JDK 7/8 | ojdbc7.jar | com.oracle:ojdbc7:12.1.0.x |
| 12.2.0.x / 18c / 19c | JDK 8/11 | ojdbc8.jar | com.oracle:ojdbc8:12.2.0.x |
| 21c+ | JDK 11/17 | ojdbc11.jar | com.oracle:ojdbc11:21.x.x |
查詢當前資料庫版本:
SELECT * FROM v$version; -- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
ojdbc6.jar / ojdbc7.jar / ojdbc8.jar關鍵:JAR 必須放在用戶家目錄下執行命令 (Windows: `C:\Users\
# 11g R2 範例 (ojdbc6.jar) cd ~ cp /path/to/ojdbc6.jar . mvn install:install-file \ -DgroupId=com.oracle \ -DartifactId=ojdbc6 \ -Dversion=11.2.0.4 \ -Dpackaging=jar \ -Dfile=ojdbc6.jar \ -DgeneratePom=true
[INFO] Installing /home/user/ojdbc6.jar to /home/user/.m2/repository/com/oracle/ojdbc6/11.2.0.4/ojdbc6-11.2.0.4.jar [INFO] Installing /home/user/ojdbc6.jar to /home/user/.m2/repository/com/oracle/ojdbc6/11.2.0.4/ojdbc6-11.2.0.4.pom [INFO] BUILD SUCCESS
mvn deploy:deploy-file \ -DgroupId=com.oracle \ -DartifactId=ojdbc6 \ -Dversion=11.2.0.4 \ -Dpackaging=jar \ -Dfile=ojdbc6.jar \ -Durl=https://nexus.example.com/repository/maven-releases/ \ -DrepositoryId=nexus-releases \ -DgeneratePom=true
settings.xml 需配置 `server` id 對應 `nexus-releases` 的認證。
com.oracle ojdbc6 11.2.0.4
| 問題 | 原因 | 解決 |
|---|---|---|
| 找不到 JAR / 路徑錯誤 | -Dfile 相對路徑解析失敗 | **將 JAR 複製到 `~` 目錄下**,命令中直接用檔名 |
| 版本衝突 (多個 ojdbc) | 傳遞依賴引入不同版本 | dependencyManagement 鎖定版本;`exclusions` 排除舊版 |
| 類別衝突 (oracle.jdbc vs oracle.jdbc.driver) | 舊版驅動包結構不同 | 統一升級至 ojdbc8 (12.2+) 相容 11g/12c/19c |
| 私服部署 401/403 | 認證失效/權限不足 | 檢查 `settings.xml` server 配置;Nexus/Artifactory 權限 |
Oracle 12.2+ 提供官方 Maven 外掛自動同步驅動至本地/私服:
mvn com.oracle.maven:oracle-maven-sync:push \ -DoracleHome=/u01/app/oracle/product/12.2.0/dbhome_1 \ -DserverId=nexus-releases
最佳實踐:新專案**直接使用 `ojdbc8` (12.2.0.1+)**,相容 Oracle 11.2.0.4+、12c、18c、19c、21c,避免多版本維護地獄。