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:
Jak znaleźć repozytorium (jeśli istnieje) zawierające ten artefakt?
Jak go dodać, aby Maven z niego skorzystał?
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.
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>
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.
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>
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>
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:
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 .
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.
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.
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
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>
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.
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/).
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.
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
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
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