How to use Oracle JDBC driver in Gradle project

2020-02-10 02:42发布

I'm new with Gradle projects and I have one question. I've searched in Internet but I couldn't find what I need or maybe I couldn't know how to search it. First I'm going to tell you my case. I have a Gradle project and I would like to execute several automated tests, in the future with jenkins, but now I want to try on Eclipse. I have the oracle jdbc driver in /lib directory, and this is my build.gradle

    apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    jcenter()
    //mavenCentral()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    compile 'org.slf4j:slf4j-api:1.7.21'
    compile 'org.seleniumhq.selenium:selenium-java:2.+'
    compile 'org.testng:testng:6.+'
    //compile 'com.oracle:ojdbc14:10.2.0.4.0'
    //testCompile 'net.sourceforge.jexcelapi:jxl:2.6.12'
    testCompile 'info.cukes:cucumber-core:1.+'
    testCompile 'info.cukes:cucumber-java:1.+'
    testCompile 'info.cukes:cucumber-junit:1.+'
    testCompile 'junit:junit:4.12'
}

repositories {
  flatDir(dir: 'libs')//, name: 'Local libs'
}

dependencies {
  compile name: 'ojdbc7'
}

I'd like to use this jdbc driver in one class but I don't know how to use it. When I tried with Maven I used this way "import oracle.jdbc.driver.OracleDriver;" but I guess this is not valid for Gradle project. Can you help me, please? Thanks in advance

7条回答
贼婆χ
2楼-- · 2020-02-10 03:15

You can simply add a jar as dependency, like so:

compile files('libs/ojdbc7.jar')

And there is no need to add a flatDir repository in that case. Read about it in the official user guide

查看更多
来,给爷笑一个
3楼-- · 2020-02-10 03:22

Since SSO-based authentications are not available in gradle:

Currently you have 3 alternatives:

(+1 use maven)

see: https://discuss.gradle.org/t/support-for-maven-repositories-that-use-realm-based-sso/14456

查看更多
不美不萌又怎样
4楼-- · 2020-02-10 03:23

You can try reusing your local Maven repository for Gradle:

  • Download ojdbc7.jar from Oracle site
  • Install the jar into your local Maven repository:

    mvn install:install-file -Dfile=ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1 -Dpackaging=jar
    
  • Check that you have the jar installed into your ~/.m2/ local Maven repository

  • Enable your local Maven repository in your build.gradle file:

    repositories {  
        mavenCentral()  
        mavenLocal()  
    }  
    
    dependencies {  
        compile ("com.oracle:ojdbc7:12.1.0.1")  
    }  
    
  • Now you should have the jar enabled for compilation in your project

查看更多
何必那么认真
5楼-- · 2020-02-10 03:27

In addition to correct answer, I want to share my experience how I solve a problem with ojdbs dependence (used gradle and Intellij Idea).

  1. Go to the oracle site and download jdbs file(s). I chose to download the full archive - ojdbc8-full.tar.gz
  2. Unpack the archive in someone directory (for example c:\folder\OJDBC8-Full)
  3. In Intellij Idea go to the Project Structure/Libraries, press "+" symbol and specify a path to the folder there archive unpacked (OJDBC8-Full). Specify name:

enter image description here

  1. In build.gradle add:

dependencies {

...

compile files('libs/OJDBC8-Full') //OJDBC8-Full - it is name what you specify for librare

...

}

查看更多
Root(大扎)
6楼-- · 2020-02-10 03:29
repositories {
   flatDir { dirs "libs" }
   }
   dependencies {
     compile files( 'libs/ojdbc-16.jar')
   }

create "libs" directory under project root and put that into it.

查看更多
一纸荒年 Trace。
7楼-- · 2020-02-10 03:31

Time is 2019 and Oracle finally decided to let "Maven Central becomes a distribution center for the Oracle JDBC drivers".

For example, if you want to use OJDBC version 19 with Java 8, you can find ojdbc jar in Maven Central. Please be aware there is a typo in group name. It should have been com.oracle.ojdbc instead of com.oracle.jdbc

 repositories {
    mavenCentral()
}

dependencies {
    compile "com.oracle.ojdbc:ojdbc8:19.3.0.0"
}
查看更多
登录 后发表回答