日期:2014-05-16  浏览次数:20472 次

Maven 找不到oracle jdbc 驱动,谁之过?

Maven 找不到oracle jdbc? 驱动,谁之过?

发表于 2010-03-17

整理于 2012-04-03

整理自source: http://stackoverflow.com/questions/1074869/find-jdbc-driver-in-maven-repository

?

问: 我想把oracle的jdbc驱动加入到我的项目中(运行时),比如ojdbc14。

我的POM文件如下,

?


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

?

不过这显然是无效的,因为?oracle 的jdbc driver不在Maven的central repository中。

我的两个问题是:

1) 我如何找到一个包含此?artifact 的repository?

2)??我如何添加,maven才能使用?

?

答:

1), 不幸的是由于二进制许可?binary license的限制, 没有任何一个公共的repository可以包含oracle 的jdbc driver。我们的很多依赖都面对同样的问题,这不是Maven的错。即使你偶然发现了某个公共的repository可以包含这个JAR,那么那一定是违法的。

?

2),由于二进制许可?binary license的限制,一些?JAR不能加入到?Maven Central repo?中,比如:

Oracle JDBC driver classes for use with JDK1.4的POM 如下:

?

http://repo2.maven.org/maven2/com/oracle/ojdbc14/10.2.0.3.0/ojdbc14-10.2.0.3.0.pom

?

?

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
<name>Oracle JDBC Driver</name>
<description>Oracle JDBC driver classes for use with JDK1.4</description>
<url>
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
</url>
<licenses>
<license>
<name>
Oracle Technology Network Development and Distribution License Terms
</name>
<url>
http://www.oracle.com/technology/software/htdocs/distlic.html
</url>
</license>
</licenses>
<organization>
<name>Oracle Corporation</name>
<url>http://www.oracle.com</url>
</organization>
</project>
?

?

因此, 下载这个POM, 打开它, 你就可以找到下载 JAR的URL。下载之后, 你就可以用下面的maven命令添加到你本地的repository?中。也许你需要修改ojdbc.jar?路径。

?

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

?

?

?如果你的开发团队有自己的私服, 可参照这