在pom.xml中缺少com.oracle:ojdbc6:jar:11.2.0这个工件。

40

在pom.xml中丢失com.oracle的构件

我正在使用Eclipse Luna并处理一个Maven项目。当我在pom.xml中添加ojdbc jar的条目时,它会在xml中出现错误。我无法找到任何原因导致这个问题,因为groupId、artifactId和version都是正确的。

我该如何解决这个问题?


你是否手动将这个jar包添加到本地仓库或指定了包含它的仓库? - Beau Grantham
可能是在Maven存储库中查找Oracle JDBC驱动程序的重复问题。 - zloster
12个回答

72

由于Oracle许可限制,没有公共仓库提供ojdbc jar。

您需要下载并将其安装到您的本地存储库中。从Oracle获取jar文件,并使用以下方式将其安装到您的本地maven存储库中:

mvn install:install-file -Dfile={path/to/your/ojdbc.jar} -DgroupId=com.oracle 
-DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar
如果您正在使用ojdbc7,则这里是链接

此外,访问[https://dev59.com/fmkw5IYBdhLWcg3wbqAS]以获取有关此主题的完整讨论。 - Jess
我将这个jar文件放在bin文件夹中,并运行了以下脚本:mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.1.0.7.0 -Dpackaging=jar - Ryan Augustine

11

这是解决问题最快的方法,但不建议使用,因为它只适用于您的本地系统。

下载jar包,注释掉以前的 ojdbc6 条目,并添加一个新的本地条目,如下所示:

以前的条目:

<!-- OJDBC6 Dependency -->
        <!-- <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>1.0</version>
            <scope>runtime</scope>
        </dependency> -->

新条目:

<dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/lib/ojdbc6/ojdbc6.jar</systemPath>
        </dependency> 

这个 {project.basedir} 是什么?我已经检查了项目文件夹,但是无法像 "{project.basedir}/lib/" 中那样找到 lib 文件夹。你能帮我正确地定位它吗? - Kailas
@Kailas 你需要从互联网上下载ojdbc6 jar文件。这个文件的位置可以是你系统中任何你放置jar文件的地方。它并不会自动存在于系统中,你需要自己决定它的位置。 - Srishti Sinha

4

将ojdbc6.jar放置在Eclipse项目资源文件夹中。 然后在pom.xml中添加以下依赖代码:

<dependency>
<groupId> oracle </groupId>
 <artifactId>ojdbc6</artifactId>
 <version>11.2.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/src/main/resources/ojdbc6.jar</systemPath>
</dependency>

2

在 Windows 上,如果语法有问题,可能会在将 jar 添加到 Maven 时遇到问题。

尝试使用双引号封装 -D 参数,像这样:

mvn install:install-file "-Dfile=ojdbc6.jar" "-DgroupId=com.oracle" "-DartifactId=ojdbc6" "-Dversion=11.2.0" "-Dpackaging=jar" 

请注意,在您的pom.xml文件中应使用相同的版本/ artifactId / groupId。在上述命令之后,您不能使用版本11.2.0.3。您必须将其放在您的pom.xml文件中;

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0</version>
    </dependency>

如果你想使用另一个版本,比如12.1.0.1,你应该使用该版本或其他信息运行上述命令


2
请从Oracle官网下载oracle ojdbc驱动程序。

将Oracle驱动程序安装/添加到本地maven仓库 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dpackaging=jar -Dversion=12.1.0.1 -Dfile=ojdbc7.jar -DgeneratePom=true

通过-Dfile=指定已下载文件的位置

在您的pom文件中添加以下依赖项

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.1</version>
</dependency>

请使用与mvn install命令中指定的groupId/artifactId相同的值。最后清理您的项目。

2

我遇到了同样的问题。经过长时间的故障排除,Jenkins的构建因为这个错误而失败。

根据您的要求下载ojdbc的链接 - https://www.oracle.com/database/technologies/maven-central-guide.html

我已经在我的maven/bin位置下载了它,并执行了下面的命令。

mvn install:install-file -Dfile=ojdbc8-12.2.0.1.jar -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar

POM.xml

<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>

请随意添加您的评论 - Abhinay Gupta

1
添加这个对我有用
<repositories>
    <!-- Repository for ORACLE JDBC Driver -->
    <repository>
        <id>codelds</id>
        <url>https://code.lds.org/nexus/content/groups/main-repo</url>
    </repository>
</repositories>

0
有时即使jar文件在文件夹中可用,错误仍然存在。为了克服这个问题,只需将组ID更改为有意义的ID即可。

0
这是由于Maven仓库中缺少ojdbc6.jar而导致的。您可以从这里下载它。
请在pom.xml文件中添加依赖。
   <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0</version>
    </dependency>

使用以下命令在命令提示符中将Oracle驱动程序安装/添加到本地Maven存储库。

  1. 打开命令提示符
  2. 更改目录到apache-maven/bin文件夹 例如:cd C:\Users\Public\Documents\apache-maven-3.5.2\bin
  3. 输入以下命令

    mvn install:install-file -Dfile={path/to/your/ojdbc.jar} -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

例如:mvn install:install-file -Dfile=C://Users//Codemaker//Downloads//Compressed//ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

注意:使用双反斜杠(//)分隔文件夹


0

如果您的配置文件中的systempath和artifact Id等值是正确的,请检查一下。

    <dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>C:\Users\Akshay\Downloads\ojdbc6.jar</systemPath>
    </dependency> 

1
请在您的答案中添加一些解释,说明为什么这对OP的答案很重要。 - Rohan Rao
我曾经遇到过同样的问题,通过提供正确的jar文件系统路径来解决了这个问题。 - akshay kenjale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接