在 Maven 存储库中查找 Oracle JDBC 驱动程序

2022-08-31 05:07:17

我想将oracle jdbc驱动程序作为依赖项(运行时范围)添加到我的项目中 - ojdbc14。在 MVN 存储库站点中,要放入 POM 的依赖项是:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc14</artifactId>
    <version>10.2.0.3.0</version>
</dependency>

当然,这不起作用,因为它不在maven使用的中央存储库中。2 个问题:

  1. 如何查找包含此工件的存储库(如果有)?

  2. 如何添加它以便Maven使用它?


答案 1

如何查找包含此工件的存储库(如果有)?

不幸的是,由于二进制许可证,没有带有Oracle驱动程序JAR的公共存储库。这发生在许多依赖项中,但不是Maven的错。如果您碰巧找到一个包含JAR的公共存储库,则可以确定这是非法的。

如何添加它以便Maven使用它?

由于许可证原因而无法添加的一些 JAR 在 Maven Central 存储库中有一个 pom 条目。只需检查一下,它包含供应商首选的Maven信息:

<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>

...和用于下载文件的 URL,在本例中为 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

下载JAR后,只需将其添加到您的计算机存储库中(注意我从POM中提取了groupId,artifactId和版本):

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
     -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true

生成 POM 的最后一个参数将使您免于 pom.xml警告

如果您的团队有本地 Maven 存储库,本指南可能有助于将 JAR 上传到那里。


答案 2

Oracle JDBC 驱动程序现在在 Oracle Maven Repository(不在 Central)中可用。

<dependency>
    <groupId>com.oracle.jdbc</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.2</version>
</dependency>

Oracle Maven Repository 需要用户注册。说明可以在以下位置找到:

https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides

更新 2019-10-03

我注意到Spring Boot现在正在使用Maven Central的Oracle JDBC驱动程序。

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc10</artifactId>
    <version>19.3.0.0</version>
</dependency>

对于 Gradle 用户,请使用:

implementation 'com.oracle.ojdbc:ojdbc10:19.3.0.0'

无需用户注册。

更新 2020-03-02

Oracle 现在正在 com.oracle.database 组 ID 下发布驱动程序。请参阅Anthony Accioly的答案以获取更多信息。谢谢安东尼。

Oracle JDBC Driver 與 JDK6、JDK7 和 JDK8 相容

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.2.0.4</version>
</dependency>

Oracle JDBC Driver 與 JDK8、JDK9 和 JDK11 相容

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <version>19.3.0.0</version>
</dependency>

Oracle JDBC Driver 與 JDK10 和 JDK11 相容

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>19.3.0.0</version>
</dependency>

推荐