2015-09-17 12 views
8

Ich habe die RedshiftJDBC41-1.1.17.1007.jar heruntergeladen, um die com.amazon.redshift.jdbc41.Driver für einige Redshift-POC-Arbeit zu verwenden, die ich mache, und habe es manuell zu meinem Klassenpfad hinzugefügt.Gradle/Maven-Abhängigkeit für Redshift JDBC-Treiber

Ich möchte es jetzt in unseren Build integrieren, aber ich kann kein Beispiel für einen Abhängigkeitsnamen finden, um es in meine build.gradle Datei zu setzen oder in einem Maven Repo zu finden. Irgendwelche Tipps? (Hinweis, ich suche nur nach Rotverschiebung jdbc, nicht nach dem älteren postgres-redshift-Treiber).

+0

Maven Repo hinzugefügt, siehe den Link unten im Kommentar von nicola –

Antwort

0

Es scheint, dass dieses Artefakt in keinem Maven Repo verfügbar ist. Ich konnte den Redshift-JDBC-Treiber für Version 1.1.2.0002 auf this GitHub repo finden, aber dies ist nicht die Version, die Sie suchen.

Ihre beste Wette wäre manually add this dependency mit:

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

Das erste, was zu realisieren ist, dass Amazon Dokumentation Sie erzählt die v4 Version der Treibers JAR-Datei zu laden. Wenn Sie den Treiber heruntergeladen Sie eine V4x Version des Treibers wurde so sollte Ihr Code sein:

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

NICHT

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

Notiere die Zugabe der Versionsnummer im ersten Beispiel!

Der Fahrer Glas ist hier:

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

Amazon veröffentlicht nicht zu Maven (Komm schon Amazon WTF?) Also musst du das Glas, das du heruntergeladen hast, importieren. Der Maven Importbefehl (für JDBC) sieht wie folgt aus:

mvn installieren. Install-Datei -dfile =/RedshiftJDBC41-1.1.10.1010.jar -DgroupId = com.amazon -DartifactId = redshift.jdbc41 -Dversion = 1.1.10.1010 -Dpackaging = jar -DgeneratePom = true

die Maven Abhängigkeit sieht wie folgt aus (Beachten Sie, dass die artificatID und Version sollte das sein, was Sie es in der MVN Befehl oben gab. Wenn der Fahrer aktualisiert wurde, dann müssen der mvn-Befehl und die Abhängigkeitsfelder geändert werden):

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

ich das gleiche tue. Weiß jemand, unter welcher Lizenz dieser JDBC-Treiber verfügbar ist? Ich möchte die Lizenzbedingungen nicht brechen. – rajeshnair

4

Einfacher Grund, warum sie nicht in öffentliche Repo hochladen: Lizenzierung.

Ich verschwendete viele Stunden deswegen. Eine Stunde, um herauszufinden, es in Maven Repo zu finden und den Grund zu finden (Lesen über Leute Kommentare usw.). Eine Stunde, um es in das interne Repository hochzuladen. Dann herauszufinden, wie man es mit AWS Lambda verwendet.

Amazon veröffentlicht den RedShift JDBC-Treiber aufgrund einiger dummer Lizenz-/Rechtsfragen nicht in einem öffentlichen Repository. Sie verwenden viele Open-Source-Projekte, bringen aber nichts zur Community zurück. Gerade dieser Redshift-Treiber ist ein Beispiel.

Es ist ein kundenorientiertes Unternehmen, aber immer noch gibt es einige juristische Leute, die ihre Arbeit nicht richtig machen. Übrigens, ich bin ein ehemaliger Angestellter von Amazon.

1

Amazon veröffentlicht nicht in Maven, also müssen Sie das Glas, das Sie herunterladen, importieren.

Gradle

  1. download Treiber 2.Create libs-Ordner auf dem Stammverzeichnis des Projekts

  2. im

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

JAVA USAGE build.gradle hinzufügen Beispiel

Follow here