web-dev-qa-db-ja.com

RedshiftJDBCドライバーのGradle / Maven依存関係

RedshiftJDBC41-1.1.17.1007.jarをダウンロードして、実行中のRedshiftPOC作業にcom.Amazon.redshift.jdbc41.Driverを使用し、クラスパスに手動で追加しています。

これをビルドに組み込みたいのですが、build.gradleファイルに配置したり、Mavenリポジトリで見つけたりするための依存関係名の例が見つからないようです。任意のヒント? (注:古いpostgres-redshiftドライバーではなく、redshift jdbcのみを探しています)。

11
elduff

RedshiftJDBCドライバーがMavenリポジトリで利用できるようになりました。 http://docs.aws.Amazon.com/redshift/latest/mgmt/configure-jdbc-connection-with-maven.html を見てください

リンクが機能しない場合は、Querying a Database -> Connecting to a Cluster Using SQL Client Tools -> Configuring Connections in Amazon Redshift -> 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>

ただし、ドライバーには多くのバリエーションがあるため、ページにアクセスして詳細を読み、必要なものを選択する必要があります。

13
nicola

最初に気付くのは、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>
13
David Urry

パブリックリポジトリにアップロードしない単純な理由:ライセンス。

そのせいで何時間も無駄になりました。 Mavenレポでそれを見つけて理由を見つけるために1時間(人々のコメントなどについて読む)。内部リポジトリにアップロードするのに1時間。次に、AWSLambdaでそれを使用する方法を理解します。

いくつかの愚かなライセンス/法的問題のため、AmazonはRedShiftJDBCドライバーをパブリックリポジトリに公開しません。彼らは多くのオープンソースプロジェクトを使用していますが、コミュニティに何も貢献していません。このredshiftドライバーは一例です。

その顧客中心の会社ですが、それでも彼らの仕事を適切に行わない法的な人々がいます。ところで、私はアマゾンの元従業員です。

4
devsathish

AmazonはMavenに公開しないため、ダウンロードしたjarをインポートする必要があります。

Gradle

  1. ダウンロード ドライバー2.プロジェクトのルートディレクトリにlibsフォルダーを作成します

  2. build.gradleを追加します

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

Javaの使用例

こちらをフォロー

2
dnocode

最も簡単な方法は、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'
}
1
Rori Stumpf

追加

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

このアーティファクトはどのMavenリポジトリでも利用できないようです。 このGitHubリポジトリ でバージョン1.1.2.0002のredshiftJDBCドライバーを見つけることができましたが、これはお探しのバージョンではありません。

あなたの最善の策は 手動でこの依存関係を追加する 使用することです:

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