Redshift JDBC驱动程序的Gradle / Maven依赖项

时间:2015-09-17 21:34:02

标签: maven gradle amazon-redshift

我已经下载了RedshiftJDBC41-1.1.17.1007.jar,以便使用com.amazon.redshift.jdbc41.Driver进行我正在进行的某些Redshift POC工作,并将其手动添加到我的类路径中。

我现在想将它合并到我们的构建中,但我似乎无法找到一个依赖项名称的示例,以便将其放入我的build.gradle文件中或在Maven回购有小费吗? (注意,我只是寻找redshift jdbc,而不是更老的postgres-redshift驱动程序。)

7 个答案:

答案 0 :(得分:12)

首先要意识到的是,amazon文档告诉您加载驱动程序JAR文件的v4版本。如果您下载了驱动程序,则会获得驱动程序的v4X版本,因此您的代码应为:

Class.forName("com.amazon.redshift.jdbc41.Driver");

不是

Class.forName("com.amazon.redshift.jdbc4.Driver");

请注意在第一个示例中添加了版本号!

司机罐在这里:

http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html

亚马逊不会发布到Maven(来自Amazon WTF?),因此您必须导入您下载的jar。 Maven导入命令(对于JDBC)如下所示:

  

mvn install:install-file -Dfile =。/ RedshiftJDBC41-1.1.10.1010.jar -DgroupId = com.amazon -DartifactId = redshift.jdbc41 -Dversion = 1.1.10.1010 -Dpackaging = jar -DgeneratePom = true

Maven依赖关系看起来像这样(请注意,artificatID和Version应该是你在上面的mvn命令中给出的。如果驱动程序已经更新,那么mvn命令和依赖项字段必须改变):

  <dependency>
      <groupId>com.amazon</groupId>
      <artifactId>redshift.jdbc41</artifactId>
      <version>1.1.10.1010</version>
  </dependency>

答案 1 :(得分:11)

现在可以在maven repo上使用Redshift JDBC驱动程序。看http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection-with-maven.html

答案 2 :(得分:4)

他们没有上传到公共回购的简单原因:许可。

因此我浪费了很多时间。花了一个小时才能在maven回购中找到它并找到原因(阅读有关人们的评论等)。一小时将其上传到内部存储库。然后找出如何将其与AWS Lambda一起使用。

由于一些愚蠢的许可/法律问题,亚马逊不会将RedShift JDBC驱动程序发布到任何公共存储库。他们使用了很多开源项目,但没有回馈社区。只是这个红移驱动程序就是一个例子。

它是一家以客户为中心的公司,但仍然有一些合法的人不能正常工作。顺便说一句,我是亚马逊的前雇员。

答案 3 :(得分:1)

亚马逊不会发布到Maven,因此您必须导入您下载的jar。

摇篮

  1. download司机 2.在项目根目录

  2. 上创建libs文件夹
  3. 添加build.gradle

    repositories { 
    
      flatDir {  dirs 'libs'} 
    }
    
    dependencies {
    
       compile name: 'RedshiftJDBC42-1.2.1.1001'
    
    }
    
  4. JAVA使用示例

    Follow here

答案 4 :(得分:0)

看来这个神器在任何Maven回购中都不可用。我能够在this GitHub repo上找到版本1.1.2.0002的redshift JDBC驱动程序,但这不是您要查找的版本。

你最好的选择是manually add this dependency使用:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar -DgeneratePom=true

答案 5 :(得分:0)

最简单的方法是将Amazon的Redshift存储库添加到gradle构建文件中,然后包括这样的依赖项。

build.gradle:

group 'com.yourcompany'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
    maven {
        url 'http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release'
    }
}

dependencies {
        compile group: 'com.amazon.redshift', name: 'redshift-jdbc42', version: '1.2.16.1027'
}

答案 6 :(得分:0)

添加

<repositories>
    <repository>
      <id>redshift</id>
      <url>https://s3.amazonaws.com/redshift-maven-repository/release</url>
    </repository>
</repositories>

然后选择所需的版本。

<dependency>
   <groupId>com.amazon.redshift</groupId>
   <artifactId>redshift-jdbc42</artifactId>
   <version>1.2.10.1009</version>
</dependency>