RedshiftJDBC41-1.1.17.1007.jarをダウンロードして、実行中のRedshiftPOC作業にcom.Amazon.redshift.jdbc41.Driver
を使用し、クラスパスに手動で追加しています。
これをビルドに組み込みたいのですが、build.gradle
ファイルに配置したり、Mavenリポジトリで見つけたりするための依存関係名の例が見つからないようです。任意のヒント? (注:古いpostgres-redshiftドライバーではなく、redshift jdbcのみを探しています)。
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>
ただし、ドライバーには多くのバリエーションがあるため、ページにアクセスして詳細を読み、必要なものを選択する必要があります。
最初に気付くのは、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>
パブリックリポジトリにアップロードしない単純な理由:ライセンス。
そのせいで何時間も無駄になりました。 Mavenレポでそれを見つけて理由を見つけるために1時間(人々のコメントなどについて読む)。内部リポジトリにアップロードするのに1時間。次に、AWSLambdaでそれを使用する方法を理解します。
いくつかの愚かなライセンス/法的問題のため、AmazonはRedShiftJDBCドライバーをパブリックリポジトリに公開しません。彼らは多くのオープンソースプロジェクトを使用していますが、コミュニティに何も貢献していません。このredshiftドライバーは一例です。
その顧客中心の会社ですが、それでも彼らの仕事を適切に行わない法的な人々がいます。ところで、私はアマゾンの元従業員です。
最も簡単な方法は、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>
このアーティファクトはどの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