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

Gradle/Maven dependency for Redshift JDBC driver

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

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

似乎这个工件在任何 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

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

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

没有

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

注意第一个例子中版本号的添加!

驱动程序 jar 在这里:

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

Amazon 不发布到 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>

他们不上传到 public 存储库的简单原因:许可。

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

由于一些愚蠢的 licensing/legal 问题,Amazon 不会将 RedShift JDBC 驱动程序发布到任何 public 存储库。他们使用很多开源项目,但不回馈社区。仅此 redshift 驱动程序就是一个例子。

这是一家以客户为中心的公司,但仍然有一些法律人员没有做好自己的工作。顺便说一句,我是亚马逊的前雇员。

Amazon 不发布到 Maven,因此您必须导入下载的 jar。

Gradle

  1. download driver 2.create项目根目录下的libs文件夹

  2. 加入build.gradle

    repositories { 
    
      flatDir {  dirs 'libs'} 
    }
    
    dependencies {
    
       compile name: 'RedshiftJDBC42-1.2.1.1001'
    
    }
    

JAVA 用法示例

Follow here

Redshift JDBC 驱动程序现已在 Maven 存储库中可用。看看http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection-with-maven.html

如果 link 不起作用,请导航至 Querying a Database -> Connecting to a Cluster Using SQL Client Tools -> Configuring Connections in Amazon Redshift -> Configuring a JDBC Connection

添加 redshift 存储库

<repositories>
    <repository>
      <id>redshift</id>
      <url>http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release</url>
    </repository>
</repositories>

然后添加依赖,如

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

但是驱动程序有很多变体,所以您应该访问该页面以阅读更多信息并选择您需要的那个。

最简单的方法是将 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'
}

添加

<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>