How to add ojdbc7 to Java web app by Gradle?

17,461

Solution 1

For Oracle database 12c

(1) Download ojdbc7.jar at Oracle homepage.

(2) Run command

mvn install:install-file -Dfile=ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1 -Dpackaging=jar

(3) Add to build.gradle

compile('com.oracle:ojdbc7:12.1.0.1')

Solution 2

Gradle currently can't handle the redirects needed by the realm-based SSO mechanism used by Oracle's maven repo.

A workaround is to use this URL instead

url "https://www.oracle.com/content/secure/maven/content"

In addition, you need to supply credentials for authentication.

Here's a minimal example:

plugins {
  id 'java'
}

repositories {
    jcenter()

    maven {

       url "https://www.oracle.com/content/secure/maven/content"

       credentials {
         username = '<Oracle Account email address>'
         password = '<Oracle Account password>'
       }
    }
}

dependencies {
    compile 'com.oracle.jdbc:ojdbc7:12.1.0.2'
}

I have a github repo with full example including a way of encrypting the password using maven's settings.xml and settings-security.xml: example-gradle-oracle

I am adding = after username and password as mentioned in Gradle AuthenticationSupported.java file

Solution 3

Your build.gradle will work if you replace:

maven {
    url ("https://maven.oracle.com")
}

to:

maven {
    url "https://www.oracle.com/content/secure/maven/content"
    name "maven.oracle.com"
    credentials {
       username '[email protected]'
       password 'your password'
    }
}

Credetials from Oracle Registration page: https://profile.oracle.com/myprofile/account/create-account.jspx.

Additionally:

To place authentication data outside of project home, you can edit configuration file ~/.gradle/gradle.properties:

[email protected]
mavenOraclePassword=your password

and use it in configuration like:

 credentials {
    username mavenOracleUsername
    password mavenOraclePassword
}

Solution 4

I've added the http://nexus.saas.hand-china.com/content/repositories/rdc/ repo and work

repositories {
    mavenCentral()
    //Add this repo
    maven {
        url "http://nexus.saas.hand-china.com/content/repositories/rdc/"
    }
}
...
dependencies {
   ....
   compile group: 'com.oracle', name: 'ojdbc7', version: '12.1.0.2'
}
Share:
17,461
James Grey
Author by

James Grey

Updated on July 10, 2022

Comments

  • James Grey
    James Grey almost 2 years

    My context:

    • I build a Java web application what based on Spring Boot 1.3.5.RELEASE .
    • I try to add ojdcb to dependencies list but not success.
    • I know that Oracle has own Maven repository at http://maven.oracle.com

    This is my build.gradle file, Let focus at line 4, 5, 6, 36:

    buildscript {
        repositories {
            mavenCentral()
            maven {
                url ("https://maven.oracle.com")
            }
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE")
    
        }
    }
    
    apply plugin: 'war'
    apply plugin: 'idea'
    apply plugin: 'spring-boot'
    
    jar {
        baseName = 'erp'
        version = '1.0.0'
    }
    
    repositories {
        mavenCentral()
    }
    
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    
    dependencies {
        compile("org.springframework.boot:spring-boot-starter-thymeleaf")
        //compile("org.springframework.boot:spring-boot-starter-security")
        providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
        compile("org.springframework.boot:spring-boot-starter-data-jpa")
        compile("org.hibernate:hibernate-core")
        compile("com.oracle.jdbc:ojdbc7:12.1.0.2")
        testCompile("junit:junit")
    }
    

    IntelliJ IDEA 2016 notice error:

    Warning:root project 'erp': Web Facets/Artifacts will not be configured properly Details: org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':runtime'. Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.oracle.jdbc:ojdbc7:12.1.0.2. Required by: :erp:unspecified

    enter image description here

    (Related links: http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven_repo.htm#MAVEN9015 https://blogs.oracle.com/dev2dev/entry/how_to_get_oracle_jdbc https://blogs.oracle.com/dev2dev/entry/oracle_maven_repository_instructions_for )

    Help me add ojdbc to dependencies list by Gradle, thank you!

  • jschreiner
    jschreiner over 6 years
    This works for me. Also, as noted by @Opal in his answer, in the question's example build.gradle file, the Oracle repository is defined at the wrong location. It needs to be defined in the top-level repositories { ...} section, not inside buildscript { ... }.