Oracle JDBC ojdbc6 Jar作为Maven依赖项

Mar*_*rvo 95 oracle jdbc war maven

我似乎无法让Maven将ojdbc6.jar文件捆绑到我的项目的war文件中.在直接为Hibernate工具指定依赖项时,我在POM文件中工作.但它不会与项目的war文件捆绑在一起,因此我的项目不会在Tomcat上运行.

我已经尝试了我可以在网上找到的每个解决方案,包括这里为此问题指定的解决方案:

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

最近,我做了以下事情:

  1. 将jar文件下载到我的机器上

  2. 运行以下命令将jar安装到我的本地存储库中:

    mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true
    
    Run Code Online (Sandbox Code Playgroud)

    (我也尝试过该命令的各种变体.)

  3. 最后,我将依赖项放入我的pom文件中:

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我运行一个干净的构建,但它失败了:

    mvn -U clean package
    
    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building jazztwo 0.0.1
    [INFO] ------------------------------------------------------------------------
    Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc6/11.2.0.3/ojdbc6-11.2.0.3.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 0.700s
    [INFO] Finished at: Tue Mar 27 15:06:14 PDT 2012
    [INFO] Final Memory: 3M/81M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal on project jazztwo: Could not resolve dependencies for project edu.berkeley:jazztwo:war:0.0.1: Could not find artifact com.oracle:ojdbc6:jar:11.2.0.3 in central (http://repo1.maven.org/maven2) -> [Help 1]
    
    Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我准备把昂贵的电脑零件扔到房间里.这浪费了很多时间.(谢谢你,甲骨文.我们又赔了多少钱?)

是因为我在Mac上,也许吧?

Ond*_*sky 133

最好将新的Maven存储库(最好使用您自己的工件)添加到项目中,而不是将其安装到本地存储库中.

Maven语法:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>
... 
<repositories>
    <repository>
      <id>codelds</id>
      <url>https://code.lds.org/nexus/content/groups/main-repo</url>
    </repository>
  </repositories>
Run Code Online (Sandbox Code Playgroud)

Grails示例:

mavenRepo "https://code.lds.org/nexus/content/groups/main-repo"
build 'com.oracle:ojdbc6:11.2.0.3'
Run Code Online (Sandbox Code Playgroud)

  • 最终,这就是我们所做的.我们在这里建立了一个存储库,现在我们所有的项目都使用它.但是,我认为知道如何做到这两点很有用. (3认同)
  • 这个lds.org存储库合法吗?根据这个答案,这是非法的:http://stackoverflow.com/a/1074971/1415732 (3认同)
  • Ondrej:据我了解,如果存储库是公开的,那么这是非法的.我的公司以您建议的方式在私人maven仓库(神器)中托管ojdbc. (3认同)
  • 当然,为你的项目添加一些任意的回购"更好",是的.哇,这在很多层面都是错的 (3认同)
  • 我想知道,如果我将依赖安装到我的公司存储库,它也会是非法的吗?或者只有公共回购是非法的?Oracle的错误是他们的库没有公共Maven存储库.我宁愿欣赏有人在他们的存储库中共享该库(并且它是可以访问的). (2认同)

ric*_*mes 40

对于将来阅读此帖子的任何人,您不需要cd到jar存在的目录.这是你需要做的 -

转到你可以运行maven命令的项目文件夹(当你在这个文件夹中执行ls -ltr时,你应该看到pom.xml)

做这个 -

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=<Path where the jar is, example downloads>/ojdbc6.jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)

完成后,您可以在pom.xml中添加依赖项,如下所示 -

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

  • 请注意:执行完这些步骤后,我仍然在eclipse中遇到同样的错误,直到我执行了"Maven> Update Project".然后一切都很美妙.这一步可能很明显,但我想我会添加它. (3认同)
  • ...添加到"你好未来的读者帖子".这运行PowerShell失败,但按预期运行普通的Windows CMD-shell.没有powershell给你! (2认同)

Mar*_*rvo 24

Raghuram在我的原始问题的评论部分提供了正确的答案.

无论出于何种原因,将"mvn install"指向物理ojdbc6.jar文件的完整路径对我来说不起作用.(或者我在运行命令时一再重复它,但没有发出错误.)

进入我保留ojdb6.jar的目录并从那里运行命令第一次工作.

如果Raghuram想回答这个问题,我会接受他的回答.感谢大家!


小智 7

__CODE__

使用Spring应用程序解决ORACLE JAR问题,

Oracle JDBC ojdbc6 Jar作为Maven依赖项

__CODE__


小智 5

首先,您需要从Oracle站点下载特定的jar(ojdbc.jar版本11.2.0.3)

如果你将它下载到C:\ filefolder

在cmd提示符下转到该目录并提供以下命令.它将安装依赖项.然后您可以构建项目.

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dpackaging=jar -Dversion=11.2.0.4.0 -Dfile=ojdbc6.jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)