Znajdź sterownik Oracle JDBC w repozytorium Maven

Chcę dodać sterownik oracle jdbc do mojego projektu jako zależność (zakres runtime) - ojdbc14. W witrynie MVNrepository zależność do umieszczenia w POM wynosi:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc14</artifactId>
    <version>10.2.0.3.0</version>
</dependency>

Oczywiście to nie działa, ponieważ nie znajduje się w centralnym repozytorium używanym przez Mavena. 2 pytania:

  1. Jak znaleźć repozytorium (jeśli istnieje) zawierające ten artefakt?

  2. Jak go dodać, aby Maven z niego skorzystał?

Author: MozenRath, 2009-07-02

16 answers

Jak znaleźć repozytorium (jeśli istnieje) zawierające ten artefakt?

Niestety ze względu na licencję binarną nie ma publicznego repozytorium ze sterownikiem Oracle Jar. Dzieje się tak z wieloma zależnościami, ale nie jest to wina Mavena. Jeśli zdarzy ci się znaleźć publiczne repozytorium zawierające JAR, możesz być pewien, że jest to nielegalne.

Jak go dodać, aby Maven z niego skorzystał?

Niektóre słoiki, których nie można dodać ze względów licencyjnych mają wpis pom w Maven Central repo . Po prostu sprawdź, zawiera preferowane przez Sprzedawcę informacje o Mavenie:

<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>

...oraz URL do pobrania pliku, który w tym przypadku jest http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html .

Po pobraniu JAR wystarczy dodać go do repozytorium komputera z (Uwaga wyciągnąłem groupId, artifactId i wersję z POM):

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
     -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true

ostatni parametr generowania POM pozwoli Ci zaoszczędzić z pom.XML warnings

Jeśli twój zespół ma lokalne repozytorium Mavena ten przewodnik może być pomocny w załadowaniu tam JAR.

 384
Author: victor hugo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-07 18:05:48

Z jakiegokolwiek powodu nie mogłem uzyskać żadnego z powyższych rozwiązań do pracy. (Nadal nie mogę.)

Zamiast tego zrobiłem włączenie jar do mojego projektu (blech), a następnie stworzenie zależności "systemowej" dla niego, która wskazuje ścieżkę do jar. To prawdopodobnie nie jest właściwy sposób, aby to zrobić, ale to działa. Eliminuje to również konieczność umieszczania Jaru w repozytoriach lokalnych przez innych programistów z zespołu (lub gościa konfigurującego serwer kompilacji).

UPDATE : This rozwiązanie działa dla mnie, gdy uruchamiam narzędzia Hibernate. Wydaje się jednak, że nie nadaje się do budowy akt wojennych. Nie obejmuje ojdbc6.plik jar w pliku target WAR.

1) Utwórz katalog o nazwie "lib" w katalogu głównym projektu.

2) Skopiuj ojdbc6.plik jar tam (niezależnie od nazwy jar.)

3) Utwórz zależność, która wygląda mniej więcej tak:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc</artifactId>
    <version>14</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/ojdbc6.jar</systemPath> <!-- must match file name -->
</dependency>
Brzydka, ale mi pasuje.

Aby dołączyć pliki do pliku war dodaj following to your pom

<build>
    <finalName>MyAppName</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${basedir}/src/main/java</directory>
                        <targetPath>WEB-INF/classes</targetPath>
                        <includes>
                            <include>**/*.properties</include>
                            <include>**/*.xml</include>
                            <include>**/*.css</include>
                            <include>**/*.html</include>
                        </includes>
                    </resource>
                    <resource>
                        <directory>${basedir}/lib</directory>
                        <targetPath>WEB-INF/lib</targetPath>
                        <includes>
                            <include>**/*.jar</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
 47
Author: Marvo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-24 08:38:50

Pobierz jar i umieść go w swoim projekcie src/lib. Teraz możesz użyć wtyczki instalatora maven.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
        <execution>
            <id>install-oracle-jdbc</id>
            <goals>
                <goal>install-file</goal>
            </goals>
            <phase>clean</phase>
            <configuration>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0</version>
                <packaging>jar</packaging>
                <generatePom>true</generatePom>
                <createChecksum>true</createChecksum>
                <file>${project.basedir}/src/lib/ojdbc6.jar</file>
            </configuration>
        </execution>
    </executions>
</plugin>

Teraz wystarczy wykonać mvn clean raz, a Oracle lib zostanie zainstalowany w lokalnym repozytorium maven.

 27
Author: Peter Enis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-16 10:24:29

Oracle ujawnia teraz repozytorium maven w maven.oracle.com Jednak musisz być uwierzytelniony.

Zobacz https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle

Zgodnie z komentarzami w poście na blogu sterownik ojdbc powinien być dostępny pod następującymi współrzędnymi:

<groupId>com.oracle.weblogic</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.3-0-0</version>
 <packaging>jar</packaging>
 22
Author: Sebastien,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-21 14:20:59

Spróbuj z:

<repositories>
    <!-- Repository for ORACLE ojdbc6. -->
    <repository>
        <id>codelds</id>
        <url>https://code.lds.org/nexus/content/groups/main-repo</url>
    </repository>
</repositories>
<dependencies> 
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
</dependencies> 
 15
Author: searching9x,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-24 08:46:43

Sterownik Oracle JDBC jest teraz dostępny w repozytorium Oracle Maven (Nie w Centralnym).

<dependency>
    <groupId>com.oracle.jdbc</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.2</version>
</dependency>
Repozytorium Oracle Maven wymaga rejestracji użytkownika. Instrukcje można znaleźć w:

Https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides

 15
Author: Bienvenido David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-06 02:29:26

1. Jak znaleźć repozytorium (jeśli istnieje) zawierające ten artefakt?

Wszystkie sterowniki Oracle Database JDBC są dystrybuowane na podstawie umowy licencyjnej OTN .

Jeśli czytasz umowę licencyjną OTN, znajdziesz ten okres licencji:

Nie możesz:
...
- rozpowszechniać programy, chyba że towarzyszy im Twoje aplikacje;
...

Dlatego nie możesz znaleźć słoika kierowcy w żadnym publicznym Mavenie Repozytorium, ponieważ byłoby rozprowadzane samodzielnie, a gdyby tak się stało, byłoby to naruszenie licencji.

Dodanie zależności:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc14</artifactId>
    <version>10.2.0.3.0</version>
</dependency>

(lub jakakolwiek późniejsza wersja) niech Maven pobiera tylko ojdbc14-10.2.0.3.0.pom, a w tym pom możesz przeczytać:

...
<licenses>
    <license>
        <name>Oracle Technology Network Development and Distribution License Terms</name>
        <url>http://www.oracle.com/technology/software/htdocs/distlic.html</url>
    </license>
</licenses>
...

Który informuje o licencji OTN.

2. Jak go dodać, aby Maven z niego skorzystał?

Aby powyższa zależność działała zgadzam się z Victorem hugo którzy sugerowali ci tutaj aby ręcznie zainstaluj jar w lokalnym repozytorium Maven (katalogu .m2), uruchamiając:

mvn install:install-file -Dfile={Path_to_your_ojdbc.jar} -DgroupId=com.oracle 
-DartifactId=ojdbc -Dversion=10.2.0.3.0 -Dpackaging=jar

Ale chcę dodać, że powyższy okres licencji nie ogranicza się tylko tam, gdzie nie możesz znaleźć JDBC jar, ale ogranicza również miejsce, w którym go zainstalujesz!

W rzeczywistości Twoje lokalne repozytorium Mavena musi być prywatne, a nie współdzielone ponieważ gdyby było współdzielone, byłoby to rodzaj dystrybucji, w której jar jest rozprowadzany sam, nawet jeśli do małej grupy ludzi w Twoim repozytorium sieć lokalna, a to stanowi naruszenie umowy licencyjnej OTN .

Ponadto uważam, że powinieneś unikać instalowania JDBC jar w Menedżerze repozytoriów korporacyjnych (np. Artifactory lub Nexus {9]}) jako pojedynczego artefaktu, ponieważ gdyby został zainstalowany, nadal byłby rozprowadzany sam, nawet jeśli tylko dla osób w Twojej organizacji, a to stanowi naruszenie umowy licencyjnej OTN .

 14
Author: taringamberini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-13 13:32:04

Możesz użyć Nexus do zarządzania zależnościami innych firm, jak również zależnościami w standardowych repozytoriach Mavena.

 12
Author: Michael Munsey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-31 20:35:27

Do tej pory nie można używać repozytoriów Mavena. Używam ivy jako narzędzia do zarządzania zależnościami, ale również używam repozytoriów ibiblio maven2. A to działa na ivy:

<dependency org="oracle" name="ojdbc14" rev="10.2.0.2" conf="*->default"/>

Zależność Maven2 może być taka:

<dependency> 
    <groupId>oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.2</version> 
</dependency>

Zauważ, że definiuję http://download.java.net/maven/2 / i http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]{[8]jako zewnętrzny maven2 repozytoria na moich ustawieniach ivy.

 6
Author: tugcem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-20 07:53:10

Dobra wiadomość dla wszystkich! Wreszcie możemy skorzystać z oficjalnego repo Oracle: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides

 3
Author: Vladimir Chervanev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-14 15:38:40

Niektóre produkty Oracle obsługują publikowanie artefaktów Mavena w lokalnym repozytorium. Produkty mają katalog plugin / maven, który zawiera opisy, gdzie znaleźć te artefakty i gdzie je przechowywać. Istnieje wtyczka od Oracle, która faktycznie zrobi przesyłanie.

Zobacz: http://docs.oracle.com/middleware/1212/core/MAVEN/config_maven.htm

Jednym z produktów, które mogą wysyłać OJDBC w ten sposób jest WLS, używa jednak dość dziwne współrzędne:

<groupId>com.oracle.weblogic</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.2-0-0</version>
 1
Author: eckes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-04 11:47:20

Wysyłam opensource pod LGPLv2 i nawet po kilku rozmowach e-mailowych z Oracle nie byli pewni, czy mogę wysłać ich binarny sterownik JDBC z moją dystrybucją. Problem związany z tym, czy moja licencja jest zgodna z warunkami OTN, więc zasugerowali, że nie mogę wysłać kierowcy. Prawdopodobnie związane z tą częścią

(b) rozpowszechniać programy wraz z opracowanymi przez Ciebie aplikacjami swoim klientom pod warunkiem, że każdy taki Licencjobiorca wyrazi na to zgodę do warunków licencji zgodnych z warunkami niniejszej Umowy

Więc nawet jeśli uda Ci się legalnie opublikować sterownik w swoim wyłącznym / lokalnym repozytorium maven, nadal istnieje ograniczenie co możesz zrobić z tym artefaktem. Wydaje się absurdalne, że nawet jeśli wysyłam ich sterownik w postaci binarnej wraz z pełnym plikiem licencji OTN, nadal nie mogę go używać i muszę zmusić moich użytkowników do ręcznego pobrania sterownika Oracle i upuszczenia do mojej ścieżki bibliotecznej, zanim będą mogli użyć mojego oprogramowanie.

 1
Author: Craig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-19 04:23:27

Jest jeden repo, który zapewnia słoik. W SBT dodaj rozdzielacz podobny do tego: "Oracle driver repo" at " http://dist.codehaus.org/mule/dependencies/maven2 "

I zależność: "oracle" % "ojdbc14" % "10.2.0.2"

Możesz zrobić to samo z maven. pom.xml i jar są dostępne ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/).

 0
Author: yǝsʞǝlA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-05 20:48:10

Jeśli używasz Netbeans, goto zależności i ręcznie zainstalować artifact. Zlokalizuj pobrane pliki .plik jar i jego gotowe. clean build rozwiąże wszelkie problemy.

 0
Author: Zafrullah Syed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-04 11:13:55

Możesz znaleźć prosty przykładowy projekt Github do użycia sterownika Oracle JDBC w projekcie Maven Proszę..

Możesz znaleźć wszystkie wyjaśnienia dla Twojej ciągłej integracji + próbkę i uruchomić na Travis-CI.

DEMO

 0
Author: sgrillon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-03 08:56:35

Rozwiązany

  • wykonaj następujące ustawienia, aby rozwiązać błąd

To repozytorium musi być włączone do znajdowania zależności Oracle 10.0.3.0 (to ustawienie musi być wykonane w Buildconfig.groovy grails.projekt.zależność.resolver = " ivy " / / or ivy

Użyj również następujących ustawień do pobierania sterowników Oracle w czasie kompilacji

Runtime " com.oracle:ojdbc: 10.2.0.3.0 "

To powinno rozwiązać problem z nie znalezieniem sterownika Oracle dla grails application


 -3
Author: Makarand,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-10 01:12:40