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

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

当然,这是行不通的,因为它不在maven使用的中央存储库中。 两个问题:

我如何找到包含此工件的存储库(如果有的话)? 如何添加它以便Maven使用它?


当前回答

Oracle JDBC驱动程序现在在Maven Central中可用。 链接如下:

Oracle JDBC驱动程序- Maven中心

Oracle开发人员的文章宣布了Oracle JDBC驱动程序在Maven Central的可用性:

Oracle宣布- Oracle JDBC驱动程序在Maven中心可用

例子:

<!-- https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc10 -->
<dependency>
   <groupId>com.oracle.database.jdbc</groupId>
   <artifactId>ojdbc10</artifactId>
   <version>19.3.0.0</version>
</dependency>

其他回答

这对我来说很有魅力。我尝试了很多方法,但这个方法帮了我。 确保遵循每个步骤并将XML文件命名为完全相同的名称。

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

这个过程有点乏味,但确实有效。

您可以使用Nexus来管理第三方依赖关系以及标准maven存储库中的依赖关系。

截至今天(2020年2月27日),Oracle宣布它已经在Maven Central上发布了从版本11.2.0.4(例如ojdbc6)到19.3.0(例如ojdbc10)的所有JDBC客户端库,组id为com.oracle.database:

例子:

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

你可以在这里找到一个在Maven项目上使用Oracle JDBC驱动程序的Github简单示例项目。

您可以找到持续集成的所有解释+一个示例,并在Travis-CI上运行。

DEMO

pom.xml

<properties>
    <oracle.driver.version>12.2.0.1</oracle.driver.version>
</properties>

<repositories>
    <repository>
        <id>maven.oracle.com</id>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <url>https://maven.oracle.com</url>
        <layout>default</layout>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>maven.oracle.com</id>
        <url>https://maven.oracle.com</url>
    </pluginRepository>
</pluginRepositories>

<dependencies>
    <dependency>
        <groupId>com.oracle.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <version>${oracle.driver.version}</version>
    </dependency>
</dependencies>

mvnsettings.xml

<settings>
    <servers>
        <server>
            <id>maven.oracle.com</id>
            <username>${OTN_USERNAME}</username>
            <password>${OTN_PASSWORD}</password>
            <configuration>
                <basicAuthScope>
                    <host>ANY</host>
                    <port>ANY</port>
                    <realm>OAM 11g</realm>
                </basicAuthScope>
                <httpConfiguration>
                    <all>
                        <params>
                            <property>
                                <name>http.protocol.allow-circular-redirects</name>
                                <value>%b,true</value>
                            </property>
                        </params>
                    </all>
                </httpConfiguration>
            </configuration>
        </server>
    </servers>
</settings>

如何在当地环境中使用

在test/mvnsettings.xml文件中修改${OTN_USERNAME

在test/mvnsettings.xml文件中修改Oracle密码${OTN_PASSWORD}

mvn clean install --settings test/mvnsettings.xml

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

不幸的是,由于二进制许可证,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和version):

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。