如何在Gradle项目

时间:2016-05-26 10:48:59

标签: jdbc gradle build.gradle ojdbc

我是Gradle项目的新手,我有一个问题。我在互联网上搜索但我找不到我需要的东西,或者我不知道如何搜索它。 首先,我要告诉你我的情况。我有一个Gradle项目,我希望将来使用jenkins执行几个自动化测试,但现在我想尝试Eclipse。 我在/ lib目录中有oracle jdbc驱动程序,这是我的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'
}

我想在一个类中使用这个jdbc驱动程序,但我不知道如何使用它。当我尝试使用Maven时,我使用了这种方式“import oracle.jdbc.driver.OracleDriver;”但我想这对Gradle项目无效。 你能帮我吗? 提前致谢

8 个答案:

答案 0 :(得分:19)

您可以尝试重用Gradle的本地Maven存储库:

  • 从Oracle网站
  • 下载ojdbc7.jar
  • 将jar安装到您当地的Maven存储库中:

    mvn install:install-file -Dfile=ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1 -Dpackaging=jar
    
  • 检查您的~/.m2/本地Maven存储库中是否安装了jar

  • build.gradle文件中启用本地Maven存储库:

    repositories {  
        mavenCentral()  
        mavenLocal()  
    }  
    
    dependencies {  
        compile ("com.oracle:ojdbc7:12.1.0.1")  
    }  
    
  • 现在您应该在项目中启用jar进行编译

答案 1 :(得分:18)

您可以简单地添加一个jar作为依赖项,如下所示:

compile files('libs/ojdbc7.jar')

在这种情况下,无需添加flatDir存储库。请在official user guide

中了解相关信息

答案 2 :(得分:2)

除了正确的答案,我想分享我的经验,如何解决ojdbs依赖的问题(使用gradle和Intellij Idea)。

  1. 转到oracle site并下载jdbs文件。我选择下载完整的档案 - ojdbc8-full.tar.gz
  2. 在某人目录中解压缩档案(例如c:\ folder \ OJDBC8-Full)
  3. 在Intellij Idea中,转到项目结构/库,按" +"符号并指定存档解压缩的文件夹的路径(OJDBC8-Full)。指定名称:
  4. enter image description here

    1. 在build.gradle中添加:
    2. 依赖项{

      ...

      编译文件(' libs / OJDBC8-Full')// OJDBC8-Full - 它是你为librare指定的名称

      ...

      }

答案 3 :(得分:1)

现在是2019年,Oracle最终决定让“ Maven Central becomes a distribution center for the Oracle JDBC drivers”。

例如,如果要使用Java 8的OJDBC 19,可以在Maven Central中找到ojdbc jar。请注意,组名中有错字。应该是com.oracle。 ojdbc 而不是com.oracle。 jdbc

 repositories {
    mavenCentral()
}

dependencies {
    compile "com.oracle.ojdbc:ojdbc8:19.3.0.0"
}

答案 4 :(得分:0)

由于基于SSO的身份验证在gradle中不可用:

目前您有3种选择:

(+ 1使用maven)

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

答案 5 :(得分:0)

除了mavenCentral之外,

也使用本地maven存储库来获取我们的依赖项。 使用本地Maven存储库的原因是因为Oracle的jdbc驱动程序不可公开访问。 我们将不得不从Oracle下载驱动程序并将其安装在我们的本地Maven存储库中。

repositories {
    mavenLocal()
}

dependencies {
    compile ("com.oracle:ojdbc6:12.2.0.1")
}

mvn install:install-file -Dfile="\ojdbc6.jar" -DgroupId="com.oracle" -DartifactId="ojdbc6" -Dversion="12.2.0.1" -Dpackaging="jar" -DgeneratePom="true"

Oracle Site for driver:

https://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

Maven网站:

https://maven.apache.org/download.cgi

答案 6 :(得分:0)

repositories {
   flatDir { dirs "libs" }
   }
   dependencies {
     compile files( 'libs/ojdbc-16.jar')
   }

在项目根目录下创建“ libs”目录,并将其放入其中。

答案 7 :(得分:0)

下面是一个简单的 gradle 构建,它使用来自 Maven 中心的新 19.7 JDBC 驱动程序。 gradle run 将启动 com.oracle.demo.App,当然,必须对其进行更改才能运行您的课程。

apply plugin: 'java'
apply plugin: 'application'

repositories {
    mavenCentral()
}

dependencies {
  implementation 'com.oracle.database.jdbc:ojdbc8-production:19.7.0.0'
  testImplementation 'junit:junit:4.+'
}

sourceCompatibility = 1.11
targetCompatibility = 1.11

mainClassName = 'com.oracle.demo.App'