Desejo adicionar o driver oracle jdbc ao meu projeto como dependência (escopo do tempo de execução) - ojdbc14. No site MVNrepository, a dependência para colocar no POM é:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
é claro que isso não funciona, pois não está no repositório central usado pelo maven. 2 perguntas:
Como localizo um repositório (se houver) que contém esse artefato?
Como o adiciono para que o Maven o use?
Respostas:
Como localizo um repositório (se houver) que contém esse artefato?
Infelizmente, devido à licença binária, não há repositório público com o Oracle Driver JAR. Isso acontece com muitas dependências, mas não é culpa do Maven. Se você encontrar um repositório público contendo o JAR, pode ter certeza de que isso é ilegal.
Como o adiciono para que o Maven o use?
Alguns JARs que não podem ser adicionados devido a razões de licença ter um pom entrada no repo Maven Central . Basta verificar, ele contém as informações preferidas do Maven do fornecedor:
... e o URL para baixar o arquivo que, neste caso, é http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html .
Depois de baixar o JAR, basta adicioná-lo ao repositório do computador com (observe que eu puxei o groupId, o artifactId e a versão do POM):
O último parâmetro para gerar um POM salvará você dos avisos pom.xml
Se sua equipe possui um repositório Maven local, este guia pode ser útil para carregar o JAR lá.
fonte
Por qualquer motivo, não consegui executar nenhuma das soluções acima. (Ainda não pode.)
Em vez disso, o que fiz foi incluir o jar no meu projeto (blech) e criar uma dependência de "sistema" para ele, indicando o caminho para o jar. Provavelmente não é a maneira CERTA de fazê-lo, mas funciona. E elimina a necessidade de outros desenvolvedores da equipe (ou o responsável por configurar o servidor de compilação) colocar o jar em seus repositórios locais.
ATUALIZAÇÃO : Esta solução funciona para mim quando executo o Hibernate Tools. Porém, NÃO parece funcionar para criar o arquivo WAR. Ele não inclui o arquivo ojdbc6.jar no arquivo WAR de destino.
1) Crie um diretório chamado "lib" na raiz do seu projeto.
2) Copie o arquivo ojdbc6.jar para lá (seja qual for o nome do jar.)
3) Crie uma dependência parecida com esta:
Feio, mas funciona para mim.
Para incluir os arquivos no arquivo war, adicione o seguinte ao seu pom
fonte
O driver Oracle JDBC agora está disponível no Repositório Oracle Maven (não na Central).
O Repositório Oracle Maven requer um registro do usuário. As instruções podem ser encontradas em:
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
Atualização 2019-10-03
Notei que o Spring Boot agora está usando o driver Oracle JDBC do Maven Central .
Para usuários Gradle, use:
Não há necessidade de registro do usuário.
Atualização 2020-03-02
Agora, a Oracle está publicando os drivers com o ID do grupo com.oracle.database. Veja a resposta de Anthony Accioly para mais informações. Obrigado Anthony.
Driver Oracle JDBC compatível com JDK6, JDK7 e JDK8
Driver Oracle JDBC compatível com JDK8, JDK9 e JDK11
Driver Oracle JDBC compatível com JDK10 e JDK11
fonte
Faça o download do frasco e coloque-o no seu projeto
src/lib
. Agora você pode usar o plug-in do maven installer.Agora você só precisa executar
mvn clean
uma vez e a lib do oracle está instalada no seu repositório maven local.fonte
A Oracle agora está expondo um repositório maven em maven.oracle.com No entanto, você precisa estar autenticado.
Vejo https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle
De acordo com os comentários na postagem do blog, o driver ojdbc deve estar disponível nas seguintes coordenadas:
fonte
Tente com:
fonte
1. Como localizo um repositório (se houver) que contém esse artefato?
Como o DavidS comentou, a linha que citei no momento em que respondi não está mais presente no contrato atual (no momento em que estou escrevendo agora) do OTN License Agreement que vinculei. Considere esta resposta apenas para a versão mais antiga do artefato, como 10.2.0.3.0 e similares.
Todos os drivers JDBC do banco de dados Oracle são distribuídos sob o contrato de licença da OTN .
Se você ler o Contrato de licença da OTN, encontrará este termo de licença:
é por isso que não é possível encontrar o frasco do motorista em nenhum repositório Maven público, porque ele seria distribuído sozinho e, se acontecesse, seria uma violação de licença.
Adicionando a dependência:
(ou qualquer versão posterior) torne os downloads do Maven
ojdbc14-10.2.0.3.0.pom
apenas, e nesse pom você pode ler:que informa sobre a licença OTN.
2. Como o adiciono para que o Maven o use?
A fim de tornar a dependência acima funciona Concordo com Victor Hugo que estavam sugerindo que você aqui para instalar manualmente o frasco em seu repositório Maven local (do
.m2
diretório) executando:mas quero acrescentar que o termo de licença acima não se limita apenas onde você não pode encontrar o jar JDBC, mas também onde você o instala!
De fato, seu repositório Maven local deve ser privado e não compartilhado, porque, se fosse compartilhado, seria um tipo de distribuição na qual o jar é distribuído sozinho, mesmo que para um pequeno grupo de pessoas na sua rede local, e isso represente um Violação do Contrato de Licença OTN .
Além disso, acho que você deve evitar instalar o jar JDBC no gerenciador de repositório da empresa (como Artifactory ou Nexus ) como um único artefato, porque, se instalado, ele ainda será distribuído sozinho, mesmo que apenas para as pessoas da sua organização, e isso representa uma violação do Contrato de licença da OTN .
fonte
Você pode usar o Nexus para gerenciar dependências de terceiros e dependências em repositórios maven padrão.
fonte
Até o momento, não é possível usar repositórios maven. Estou usando o ivy como ferramenta de gerenciamento de dependências, mas também uso os repositórios ibiblio do maven2. E isso está funcionando para a hera:
A dependência do Maven2 pode ser algo assim:
Observe que eu defino http://download.java.net/maven/2/ e http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [organização] / [módulo] / [ revisão] / [artefato] - [revisão]. [ext] como repositório externo do maven2 nas configurações da minha hera.
fonte
http://maven.ibiblio.org/maven/oracle
nemhttp://maven.ibiblio.org/maven/com.oracle
.Até hoje (27 de fevereiro de 2020), a Oracle anunciou que havia publicado todas as bibliotecas do cliente JDBC da versão 11.2.0.4 (por exemplo, ojdbc6) para 19.3.0 (por exemplo, ojdbc10) no Maven Central sob o ID do grupo com.oracle.database :
Exemplo:
fonte
Os drivers Oracle JDBC agora estão disponíveis no Maven Central . Aqui está o link:
Drivers JDBC Oracle - Maven Central
Artigo de desenvolvedores da Oracle anunciando a disponibilidade dos drivers Oracle JDBC no Maven Central:
Anúncio da Oracle - drivers JDBC da Oracle disponíveis no Maven Central
Exemplo:
fonte
Boas notícias, pessoal! Finalmente, podemos usar o repo oficial da Oracle: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
fonte
Alguns produtos Oracle suportam a publicação de artefatos publicados em um repositório local. Os produtos têm um diretório plugin / maven que contém descrições de onde encontrar esses artefatos e onde armazená-los. Existe um plug-in da Oracle que realmente fará o upload.
Consulte: http://docs.oracle.com/middleware/1212/core/MAVEN/config_maven.htm
Um dos produtos que podem enviar OJDBC dessa maneira é o WLS, mas usa coordenadas bastante estranhas:
fonte
Eu envio o código-fonte aberto sob LGPLv2 e, mesmo depois de várias conversas por email com a Oracle, não estava claro se eu estava autorizado a enviar o driver JDBC binário com a minha distribuição. O problema estava relacionado à compatibilidade da minha licença com os termos da OTN, e sugeriram que eu não tinha permissão para enviar o motorista. Presumivelmente relacionado a esta parte
Portanto, mesmo que você consiga publicar o driver legalmente em seu repositório maven exclusivo / local, ainda há a restrição sobre o que você pode fazer com esse artefato. Parece absurdo que, mesmo que eu envie o driver deles em formato binário, juntamente com o arquivo de licença completo da OTN, ainda não o possa usar e devo forçar meus usuários a baixar manualmente o driver Oracle e soltar no caminho da minha biblioteca antes que possam usar meu software.
fonte
Há um repositório que fornece o frasco. No SBT, adicione um resolvedor semelhante a este: "oracle driver repo" em " http://dist.codehaus.org/mule/dependencies/maven2 "
e uma dependência: "oracle"% "ojdbc14"% "10.2.0.2"
Você pode fazer o mesmo com o maven. pom.xml e jar estão disponíveis ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ ).
fonte
Se você estiver usando o Netbeans, vá para Dependências e instale manualmente o artefato. Localize o arquivo .jar baixado e pronto. A compilação limpa resolverá quaisquer problemas.
fonte
Você pode encontrar um projeto de amostra simples do Github para usar um driver Oracle JDBC no Maven Project aqui .
Você pode encontrar todas as explicações para sua integração contínua + uma amostra e executar no Travis-CI.
DEMO
fonte
Para dependência
Experimentar
fonte
No meu caso, ele funciona para mim depois de adicionar esta dependência de versão abaixo (10.2.0.4). Depois de adicionar esta versão 10.2.0.3.0, ela não funciona devido ao arquivo .jar não estar disponível no caminho do repositório.
fonte
Por favor tente abaixo:
fonte
Isso funcionou para mim como charme. Eu passei por várias maneiras, mas isso me ajudou. Certifique-se de seguir cada etapa e nomear os arquivos XML exatamente iguais .
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
O processo é um pouco tedioso, mas sim funciona.
fonte
RESOLVIDO
Este repositório precisa ser ativado para encontrar dependências do Oracle 10.0.3.0 (essa configuração precisa ser feita em Buildconfig.groovy grails.project.dependency.resolver = "ivy" // ou ivy
Use também as seguintes configurações para o tempo de compilação do download do driver Oracle
tempo de execução "com.oracle:ojdbc:10.2.0.3.0"
Isso deve resolver seu problema por não encontrar o driver Oracle para aplicativo grails
fonte