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

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

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

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


当前回答

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

其他回答

大家好!最后,我们可以使用甲骨文的官方回购: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides

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

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

如果你正在使用Netbeans,转到Dependencies并手动安装artifact。找到你下载的.jar文件就完成了。清洁构建将解决任何问题。

在我的情况下,在添加下面的版本依赖项(10.2.0.4)后,它就可以工作了。在添加这个10.2.0.3.0版本后,由于.jar文件无法在存储库路径中使用而无法工作。

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

我在LGPLv2下发布开源软件,甚至在与Oracle进行了几次电子邮件交谈之后,他们仍然不清楚我是否可以在我的发行版中发布他们的二进制JDBC驱动程序。这个问题涉及到我的执照是否与OTN的条款兼容,所以他们建议我不允许运送司机。大概和这部分有关

(b)将您开发的程序与应用程序一起分发给您的客户,前提是每个此类被许可人同意与本协议条款一致的许可条款

因此,即使您设法将驱动程序合法地发布在您的独占/本地maven存储库中,仍然存在允许您使用该工件的限制。看起来很荒谬,即使我以二进制形式提供了他们的驱动程序以及完整的OTN许可文件,我仍然不能使用它,必须强制我的用户手动下载Oracle驱动程序并在他们可以使用我的软件之前放入我的库路径中。