Quiero agregar el controlador oracle jdbc a mi proyecto como dependencia (ámbito de ejecución) - ojdbc14. En el sitio MVNrepository, la dependencia para poner en el POM es:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
Por supuesto, esto no funciona ya que no está en el repositorio central utilizado por Maven. 2 preguntas:
¿Cómo encuentro un repositorio (si lo hay) que contiene este artefacto?
¿Cómo lo agrego para que Maven lo use?
Respuestas:
¿Cómo encuentro un repositorio (si lo hay) que contiene este artefacto?
Desafortunadamente, debido a la licencia binaria, no hay un repositorio público con Oracle Driver JAR. Esto sucede con muchas dependencias, pero no es culpa de Maven. Si encuentra un repositorio público que contiene el JAR, puede estar seguro de que es ilegal.
¿Cómo lo agrego para que Maven lo use?
Algunos JAR que no se pueden agregar debido a razones de licencia tienen una entrada pom en el repositorio de Maven Central . Solo échale un vistazo, contiene la información Maven preferida del vendedor:
... y la URL para descargar el archivo que en este caso es http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html .
Una vez que haya descargado el JAR, simplemente agréguelo al repositorio de su computadora con (tenga en cuenta que saqué el groupId, artifactId y la versión del POM):
El último parámetro para generar un POM lo salvará de las advertencias de pom.xml
Si su equipo tiene un repositorio local de Maven, esta guía puede ser útil para cargar el JAR allí.
fuente
Por alguna razón, no pude lograr que ninguna de las soluciones anteriores funcionara. (Todavía no puedo)
Lo que hice en su lugar fue incluir el jar en mi proyecto (blech) y luego crear una dependencia del "sistema" que indique la ruta al jar. Probablemente no sea la forma CORRECTA de hacerlo, pero funciona. Y elimina la necesidad de que los otros desarrolladores del equipo (o el tipo que configura el servidor de compilación) coloque el jar en sus repositorios locales.
ACTUALIZACIÓN : Esta solución funciona para mí cuando ejecuto Hibernate Tools. Sin embargo, NO parece funcionar para construir el archivo WAR. No incluye el archivo ojdbc6.jar en el archivo WAR de destino.
1) Cree un directorio llamado "lib" en la raíz de su proyecto.
2) Copie el archivo ojdbc6.jar allí (como se llame el jar).
3) Cree una dependencia que se vea más o menos así:
Feo, pero funciona para mí.
Para incluir los archivos en el archivo war, agrega lo siguiente a tu pom
fuente
El controlador Oracle JDBC ahora está disponible en el repositorio de Oracle Maven (no en Central).
El repositorio de Oracle Maven requiere un registro de usuario. Las instrucciones se pueden encontrar en:
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
Actualizar 2019-10-03
Noté que Spring Boot ahora está utilizando el controlador Oracle JDBC de Maven Central .
Para usuarios de Gradle, use:
No hay necesidad de registro de usuario.
Actualización 2020-03-02
Oracle ahora está publicando los controladores bajo la identificación del grupo com.oracle.database. Consulte la respuesta de Anthony Accioly para obtener más información. Gracias Anthony.
Controlador Oracle JDBC compatible con JDK6, JDK7 y JDK8
Controlador Oracle JDBC compatible con JDK8, JDK9 y JDK11
Controlador Oracle JDBC compatible con JDK10 y JDK11
fuente
Descargue el frasco y colóquelo en su proyecto
src/lib
. Ahora puede usar el complemento instalador de maven.Ahora solo tiene que ejecutar
mvn clean
una vez y la biblioteca Oracle está instalada en su repositorio local de Maven.fuente
Oracle ahora está exponiendo un repositorio maven en maven.oracle.com. Sin embargo, debe estar autenticado.
Ver https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle
De acuerdo con los comentarios en la publicación del blog, el controlador ojdbc debería estar disponible en las siguientes coordenadas:
fuente
Probar con:
fuente
1. ¿Cómo encuentro un repositorio (si lo hay) que contiene este artefacto?
Como DavidS ha comentado, la línea que cité en el momento en que respondí ya no está presente en el acuerdo de Acuerdo de Licencia OTN actual (en el momento en que escribo ahora) que vinculé. Considere esta respuesta solo para la versión anterior del artefacto, como 10.2.0.3.0 y similares.
Todos los controladores JDBC de Oracle Database se distribuyen según el Acuerdo de licencia de OTN .
Si lee el Acuerdo de licencia de OTN, encontrará este término de licencia:
por eso no puede encontrar el tarro del conductor en ningún repositorio público de Maven, porque se distribuiría solo y, si sucediera, sería una violación de la licencia.
Agregar la dependencia:
(o cualquier versión posterior) hacen que las descargas de Maven sean las
ojdbc14-10.2.0.3.0.pom
únicas, y en ese pom puede leer:que le informa sobre la licencia OTN.
2. ¿Cómo lo agrego para que Maven lo use?
Para que la dependencia anterior funcione, estoy de acuerdo con Victor Hugo, quien te sugirió aquí para instalar manualmente el frasco en su repositorio Maven local (el
.m2
directorio) ejecutando:pero quiero agregar que el término de licencia anterior no limita solo donde no puede encontrar el jar JDBC, ¡sino que también limita dónde lo instala!
De hecho, su repositorio local de Maven debe ser privado y no compartido porque, si se compartiera, sería una especie de distribución en la que el jar se distribuye solo, incluso a un pequeño grupo de personas en su red de área local, y esto representa un Infracción del Acuerdo de licencia de OTN .
Además, creo que debería evitar instalar el jar JDBC en el administrador del repositorio de su corporación (como Artifactory o Nexus ) como un artefacto único porque si se instalara, todavía se distribuiría solo, aunque solo sea a personas de su organización, y esto representa una violación del Acuerdo de licencia de OTN .
fuente
Puede usar Nexus para administrar dependencias de terceros, así como dependencias en repositorios estándar de Maven.
fuente
Hasta ahora, no es posible utilizar repositorios maven. Estoy usando ivy como herramienta de gestión de dependencias, pero también uso los repositorios ibiblio de maven2. Y esto está funcionando para la hiedra:
La dependencia de Maven2 podría ser algo así:
Tenga en cuenta que defino http://download.java.net/maven/2/ y http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [organization] / [module] / [ revisión] / [artefacto] - [revisión]. [ext] como repositorios externos maven2 en mi configuración de hiedra.
fuente
http://maven.ibiblio.org/maven/oracle
nihttp://maven.ibiblio.org/maven/com.oracle
.A partir de hoy (27 de febrero de 2020), Oracle anunció que ha publicado todas las bibliotecas de clientes JDBC desde la versión 11.2.0.4 (por ejemplo, ojdbc6) hasta la 19.3.0 (por ejemplo, ojdbc10) en Maven Central bajo la identificación de grupo com.oracle.database :
Ejemplo:
fuente
Los controladores Oracle JDBC ahora están disponibles en Maven Central . Aqui esta el link:
Controladores Oracle JDBC - Maven Central
Artículo de desarrolladores de Oracle que anuncia la disponibilidad de los controladores JDBC de Oracle en Maven Central:
Anuncio de Oracle: controladores JDBC de Oracle disponibles en Maven Central
Ejemplo:
fuente
¡Buenas noticias para todos! Finalmente, podemos usar el repositorio oficial de Oracle: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
fuente
Algunos productos de Oracle admiten la publicación de artefactos de Maven en un repositorio local. Los productos tienen un directorio plugin / maven que contiene descripciones de dónde encontrar esos artefactos y dónde almacenarlos. Hay un complemento de Oracle que realmente hará la carga.
Ver: http://docs.oracle.com/middleware/1212/core/MAVEN/config_maven.htm
Uno de los productos que pueden enviar OJDBC de esta manera es el WLS, pero utiliza coordenadas bastante extrañas:
fuente
Envío de código abierto bajo LGPLv2 e incluso después de varias conversaciones por correo electrónico con Oracle no tenían claro si se me permitía enviar su controlador JDBC binario con mi distribución. El problema se relacionaba con si mi licencia era compatible con sus términos OTN, por lo que sugirieron que no se me permitía enviar al conductor. Presumiblemente relacionado con esta parte
Entonces, incluso si logra publicar el controlador legalmente en su repositorio exclusivo / local de Maven, todavía existe la restricción de lo que se le permite hacer con ese artefacto. Parece absurdo que incluso si envío su controlador en forma binaria junto con el archivo de licencia OTN completo, todavía no puedo usarlo y debo obligar a mis usuarios a descargar manualmente el controlador Oracle y colocarlo en la ruta de mi biblioteca antes de que puedan usar mi software.
fuente
Hay un repositorio que proporciona el frasco. En SBT, agregue un solucionador similar a este: "repositorio de controladores Oracle" en " http://dist.codehaus.org/mule/dependencies/maven2 "
y una dependencia: "oracle"% "ojdbc14"% "10.2.0.2"
Puedes hacer lo mismo con Maven. pom.xml y jar están disponibles ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ ).
fuente
Si está utilizando Netbeans, vaya a Dependencias e instale manualmente artefactos. Localice su archivo .jar descargado y listo. La construcción limpia resolverá cualquier problema.
fuente
Puede encontrar un proyecto de muestra simple de Github para usar un controlador Oracle JDBC en el proyecto Maven aquí .
Puede encontrar toda la explicación para su integración continua + una muestra y ejecutar en Travis-CI.
MANIFESTACIÓN
fuente
Por dependencia
Tratar
fuente
En mi caso, funciona para mí después de agregar esta dependencia de la versión a continuación (10.2.0.4). Después de agregar esta versión 10.2.0.3.0 no funciona debido a que el archivo .jar no está disponible en la ruta del repositorio.
fuente
Por favor, intente a continuación:
fuente
Esto funcionó para mí como encanto. Pasé por varias formas, pero luego esto me ayudó. Asegúrese de seguir cada paso y nombre los archivos XML exactamente igual .
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
El proceso es un poco tedioso pero sí funciona.
fuente
RESUELTO
Este repositorio debe estar habilitado para encontrar dependencias de Oracle 10.0.3.0 (esta configuración debe realizarse en Buildconfig.groovy grails.project.dependency.resolver = "ivy" // o ivy
Utilice también la siguiente configuración para la descarga del controlador Oracle en tiempo de compilación
tiempo de ejecución "com.oracle:ojdbc:10.2.0.3.0"
Esto debería resolver su problema por no encontrar el controlador Oracle para la aplicación Grails
fuente