Je veux ajouter le pilote oracle jdbc à mon projet en tant que dépendance (portée d'exécution) - ojdbc14. Dans le site MVNrepository, la dépendance à mettre dans le POM est:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
bien sûr, cela ne fonctionne pas car il ne se trouve pas dans le référentiel central utilisé par maven. 2 questions:
Comment trouver un référentiel (le cas échéant) contenant cet artefact?
Comment l'ajouter pour que Maven l'utilise?
Réponses:
Comment trouver un référentiel (le cas échéant) contenant cet artefact?
Malheureusement, en raison de la licence binaire, il n'y a pas de référentiel public avec Oracle Driver JAR. Cela se produit avec de nombreuses dépendances mais ce n'est pas la faute de Maven. Si vous trouvez un référentiel public contenant le fichier JAR, vous pouvez être sûr qu'il est illégal.
Comment l'ajouter pour que Maven l'utilise?
Certains fichiers JAR qui ne peuvent pas être ajoutés pour des raisons de licence ont une entrée pom dans le référentiel Maven Central . Il suffit de le vérifier, il contient les informations Maven préférées du vendeur:
... et l'URL pour télécharger le fichier qui dans ce cas est http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html .
Une fois que vous avez téléchargé le fichier JAR, ajoutez-le simplement à votre référentiel informatique avec (notez que j'ai extrait groupId, artifactId et la version du POM):
Le dernier paramètre pour générer un POM vous évitera les avertissements pom.xml
Si votre équipe dispose d'un référentiel Maven local, ce guide peut être utile pour y télécharger le fichier JAR.
la source
Pour une raison quelconque, je n'ai pu obtenir aucune des solutions ci-dessus pour travailler. (Je ne peux toujours pas.)
Ce que j'ai fait à la place, c'était d'inclure le pot dans mon projet (blech) puis de créer une dépendance "système" pour celui-ci qui indique le chemin vers le pot. Ce n'est probablement pas la bonne façon de le faire, mais cela fonctionne. Et cela élimine le besoin pour les autres développeurs de l'équipe (ou le gars qui configure le serveur de build) de mettre le pot dans leurs référentiels locaux.
METTRE À JOUR : Cette solution fonctionne pour moi lorsque j'exécute Hibernate Tools. Cependant, cela ne semble PAS fonctionner pour la construction du fichier WAR. Il n'inclut pas le fichier ojdbc6.jar dans le fichier WAR cible.
1) Créez un répertoire appelé "lib" à la racine de votre projet.
2) Copiez-y le fichier ojdbc6.jar (quel que soit le nom du pot.)
3) Créez une dépendance qui ressemble à ceci:
Laid, mais ça marche pour moi.
Pour inclure les fichiers dans le fichier war, ajoutez ce qui suit à votre pom
la source
Le pilote Oracle JDBC est désormais disponible dans le référentiel Oracle Maven (pas dans Central).
Le référentiel Oracle Maven nécessite un enregistrement d'utilisateur. Les instructions se trouvent dans:
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
Mise à jour 2019-10-03
J'ai remarqué que Spring Boot utilise maintenant le pilote Oracle JDBC de Maven Central .
Pour les utilisateurs Gradle, utilisez:
Il n'est pas nécessaire d'enregistrer l'utilisateur.
Mise à jour 2020-03-02
Oracle publie désormais les pilotes sous l'ID de groupe com.oracle.database. Voir la réponse d'Anthony Accioly pour plus d'informations. Merci Anthony.
Pilote JDBC Oracle compatible avec JDK6, JDK7 et JDK8
Pilote JDBC Oracle compatible avec JDK8, JDK9 et JDK11
Pilote JDBC Oracle compatible avec JDK10 et JDK11
la source
Téléchargez le pot et placez-le dans votre projet
src/lib
. Vous pouvez maintenant utiliser le plugin d'installation maven.Vous n'avez maintenant qu'à exécuter
mvn clean
une seule fois et la bibliothèque oracle est installée dans votre référentiel maven local.la source
Oracle expose maintenant un référentiel maven sur maven.oracle.com Cependant, vous devez être authentifié.
Voir https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle
Selon les commentaires du blog, le pilote ojdbc devrait être disponible aux coordonnées suivantes:
la source
Essayez avec:
la source
1. Comment puis-je trouver un référentiel (le cas échéant) contenant cet artefact?
Comme DavidS a commenté la ligne que j'ai citée au moment où j'ai répondu n'est plus présente dans le contrat de licence OTN actuel (au moment où j'écris maintenant) que j'ai lié. Considérez cette réponse uniquement pour les anciennes versions de l'artefact, comme la 10.2.0.3.0 et similaires.
Tous les pilotes JDBC Oracle Database sont distribués sous le contrat de licence OTN .
Si vous lisez le contrat de licence OTN, vous trouvez cette durée de licence:
c'est pourquoi vous ne pouvez pas trouver le pot du pilote dans un référentiel Maven public, car il serait distribué seul, et si cela se produisait, ce serait une violation de licence.
Ajout de la dépendance:
(ou toute version ultérieure) font des téléchargements Maven le
ojdbc14-10.2.0.3.0.pom
seul, et dans ce pom vous pouvez lire:qui vous informe sur la licence OTN.
2. Comment l'ajouter pour que Maven l'utilise?
Afin de faire fonctionner la dépendance ci-dessus, je suis d'accord avec victor hugo qui vous proposait ici d'installer manuellement le pot dans votre référentiel Maven local (le
.m2
répertoire) en exécutant:mais je veux ajouter que le terme de licence ci - dessus ne limite pas seulement où vous ne pouvez pas trouver le pot JDBC, mais il limite aussi où vous l'installez!
En fait, votre référentiel Maven local doit être privé et non partagé car s'il était partagé, ce serait une sorte de distribution dans laquelle le pot est distribué seul, même si à un petit groupe de personnes dans votre réseau local, et cela représente un Violation du contrat de licence OTN .
De plus, je pense que vous devriez éviter d'installer le pot JDBC dans le gestionnaire de référentiel de votre entreprise (comme Artifactory ou Nexus ) comme un artefact unique, car s'il était installé, il serait toujours distribué seul, même aux personnes de votre organisation uniquement, et cela représente une violation du contrat de licence OTN .
la source
Vous pouvez utiliser Nexus pour gérer les dépendances tierces ainsi que les dépendances dans les référentiels maven standard.
la source
Jusqu'à présent, il n'est pas possible d'utiliser les référentiels maven. J'utilise ivy comme outil de gestion des dépendances, mais j'utilise également les référentiels ibiblio de maven2. Et cela fonctionne pour le lierre:
La dépendance de Maven2 pourrait être quelque chose comme ça:
Notez que je définis http://download.java.net/maven/2/ et http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [organisation] / [module] / [ revision] / [artifact] - [revision]. [ext] en tant que dépôt maven2 externe sur mes paramètres de lierre.
la source
http://maven.ibiblio.org/maven/oracle
nihttp://maven.ibiblio.org/maven/com.oracle
.À ce jour (27 février 2020), Oracle a annoncé qu'il avait publié toutes les bibliothèques client JDBC de la version 11.2.0.4 (par exemple ojdbc6) à 19.3.0 (par exemple ojdbc10) sur Maven Central sous l'ID de groupe com.oracle.database :
Exemple:
la source
Les pilotes Oracle JDBC sont désormais disponibles dans Maven Central . Voici le lien:
Pilotes JDBC Oracle - Maven Central
Article des développeurs Oracle annonçant la disponibilité des pilotes Oracle JDBC dans Maven Central:
Oracle annonce - Les pilotes Oracle JDBC disponibles dans Maven Central
Exemple:
la source
Bonnes nouvelles tout le monde! Enfin, nous pouvons utiliser le référentiel officiel d'Oracle: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
la source
Certains produits Oracle prennent en charge la publication d'artefacts maven dans un référentiel local. Les produits ont un répertoire plugin / maven qui contient des descriptions où trouver ces artefacts et où les stocker. Il existe un plugin d'Oracle qui fera le téléchargement.
Voir: http://docs.oracle.com/middleware/1212/core/MAVEN/config_maven.htm
L'un des produits qui peut expédier OJDBC de cette manière est le WLS, il utilise cependant des coordonnées assez étranges:
la source
J'expédie opensource sous LGPLv2 et même après plusieurs conversations par courriel avec Oracle, ils ne savaient pas si j'étais autorisé à expédier leur pilote JDBC binaire avec ma distribution. Le problème était de savoir si ma licence était compatible avec leurs conditions OTN, ils ont donc suggéré que je n'étais pas autorisé à expédier le pilote. Vraisemblablement lié à cette partie
Donc, même si vous parvenez à publier le pilote légalement dans votre référentiel maven exclusif / local, il y a toujours une restriction sur ce que vous êtes autorisé à faire avec cet artefact. Il semble absurde que même si j'expédie leur pilote sous forme binaire avec le fichier de licence OTN complet, je ne peux toujours pas l'utiliser et que je doive forcer mes utilisateurs à télécharger manuellement le pilote Oracle et à accéder à mon chemin de bibliothèque avant de pouvoir utiliser mon logiciel.
la source
Il y a un dépôt qui fournit le pot. Dans SBT, ajoutez un résolveur similaire à celui-ci: "Oracle Driver Repo" at " http://dist.codehaus.org/mule/dependencies/maven2 "
et une dépendance: "oracle"% "ojdbc14"% "10.2.0.2"
Vous pouvez faire de même avec maven. pom.xml et jar sont disponibles ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ ).
la source
Si vous utilisez Netbeans, passez aux dépendances et installez manuellement l'artefact. Localisez votre fichier .jar téléchargé et c'est fait. une construction propre résoudra tous les problèmes.
la source
Vous pouvez trouver un exemple de projet Github simple pour utiliser un pilote Oracle JDBC sur le projet Maven ici .
Vous pouvez trouver toutes les explications de votre intégration continue + un échantillon et exécuter sur Travis-CI.
DEMO
la source
Pour la dépendance
Essayer
la source
Dans mon cas, cela fonctionne pour moi après avoir ajouté cette dépendance de version ci-dessous (10.2.0.4). Après avoir ajouté cette version 10.2.0.3.0, cela ne fonctionne pas car le fichier .jar n'est pas disponible dans le chemin du référentiel.
la source
Veuillez essayer ci-dessous:
la source
Cela a fonctionné pour moi comme un charme. J'ai traversé plusieurs voies mais cela m'a aidé. Assurez-vous de suivre chaque étape et de nommer exactement les mêmes fichiers XML .
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
Le processus est un peu fastidieux mais oui ça marche.
la source
RESOLU
Ce référentiel doit être activé pour rechercher les dépendances Oracle 10.0.3.0 (ce paramètre doit être effectué dans Buildconfig.groovy grails.project.dependency.resolver = "ivy" // ou ivy
Utilisez également le paramètre suivant pour le téléchargement du pilote Oracle au moment de la compilation
runtime "com.oracle:ojdbc:10.2.0.3.0"
Cela devrait résoudre votre problème pour ne pas trouver le pilote Oracle pour l'application Grails
la source