【问题标题】:Gradle/Maven dependency for Redshift JDBC driverRedshift JDBC 驱动程序的 Gradle/Maven 依赖项
【发布时间】:2015-12-14 21:54:10
【问题描述】:

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

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

【问题讨论】:

  • Maven repo 已添加,请参阅 nicola 评论中的以下链接

标签: maven gradle amazon-redshift


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    首先要意识到的是,亚马逊文档告诉您加载驱动程序 JAR 文件的 v4 版本。如果您下载了驱动程序,您将获得 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

    亚马逊不会发布到 Maven(来亚马逊 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>
    

    【讨论】:

    • 我也在做同样的事情。有谁知道这个 JDBC 驱动程序可用的许可证是什么?我不想违反许可条款。
    【解决方案3】:

    他们不上传到公共仓库的简单原因:许可。

    我因此浪费了很多时间。一个小时来弄清楚在 maven repo 中找到它并找到原因(阅读有关人员 cmets 等)。一个小时将其上传到内部存储库。然后弄清楚如何将它与 AWS Lambda 一起使用。

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

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

    【讨论】:

      【解决方案4】:

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

      分级

      1. download 驱动程序 2.在项目根目录下创建libs文件夹

      2. 在 build.gradle 中添加

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

      JAVA 使用示例

      Follow here

      【讨论】:

        【解决方案5】:

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

        如果链接无效,请导航至Querying a Database -&gt; Connecting to a Cluster Using SQL Client Tools -&gt; Configuring Connections in Amazon Redshift -&gt; Configuring a JDBC Connection

        添加红移仓库

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

        但驱动程序有很多变体,因此您应该访问该页面以阅读更多内容并选择您需要的那个。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            添加

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

            【讨论】:

              猜你喜欢
              • 2012-06-03
              • 2012-03-30
              • 2017-01-26
              • 2014-04-15
              • 1970-01-01
              • 2020-06-05
              • 1970-01-01
              • 1970-01-01
              • 2013-11-18
              相关资源
              最近更新 更多