Procurar o controlador JDBC do Oracle no repositório Maven

quero adicionar o controlador do oracle jdbc ao meu projecto como dependência ( âmbito 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 isto não funciona porque não está no repositório central usado pela maven. 2 perguntas:

  1. Como encontro um repositório (se existir) que contenha este artefato?

  2. Como posso adicioná-lo para que a Maven o use?

Author: MozenRath, 2009-07-02

16 answers

Como encontro um repositório (se existir) que contenha este artefato?

Infelizmente, devido à licença binária, não há nenhum repositório público com o frasco do Oracle. Isso acontece com muitas dependências, mas não é culpa de Maven. Se você encontrar um repositório público contendo o JAR você pode ter certeza de que isso é ilegal.

Como posso adicioná-lo para que a Maven o use?

Alguns frascos que não podem ser adicionados devido a razões de licença têm um pom entrada no Acordo de recompra Central de Maven. Basta verificar, ele contém a informação Maven preferida do Fornecedor:

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

...e a URL para baixar o arquivo que neste caso é http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html.

Depois de descarregares o frasco, adiciona-o ao teu repositório de computadores com (nota: tirei o groupId, o artifactId e a versão do POM): {[[6]}
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
     -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true

o último parâmetro para gerar um POM irá gravar tu de pom.avisos de xml

Se a sua equipa tiver um repositório Maven local Este guia pode ser útil para enviar o JAR para lá.

 384
Author: victor hugo, 2013-01-07 18:05:48
Por qualquer razão, não consegui que nenhuma das soluções acima funcionasse. (Ainda não posso.)

O que eu fiz em vez disso foi incluir o jar em meu projeto (blech) e, em seguida, criar uma dependência de "sistema" para ele que indica o caminho para o jar. Provavelmente não é a maneira certa de o fazer, mas funciona. E isso elimina a necessidade de os outros desenvolvedores da equipe (ou o cara que configura o servidor de compilação) colocarem o jar em seus repositórios locais.

Actualizar : Esta solução funciona para mim quando corro Ferramentas hibernadas. No entanto, não parece funcionar para a construção do arquivo de guerra. Não inclui o ojdbc6.ficheiro jar no ficheiro de guerra alvo.

1) Crie um diretório chamado " lib " na raiz do seu projeto.

2) copiar o jodbc6.jar file there (whatever the jar is called.)

3) Criar uma dependência que se pareça com isto:

<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>
Feio, mas funciona comigo. Para incluir os ficheiros no ficheiro de guerra, adicione o após o seu 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, 2015-12-24 08:38:50

Descarregue o frasco e coloque-o no seu projecto src/lib. Agora você pode usar o plugin do instalador 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>

Agora só tem de executar {[[2]} uma vez e a lib oracle está instalada no seu repositório Maven local.

 27
Author: Peter Enis, 2014-07-16 10:24:29
A Oracle está agora a expor um repositório maven em maven.oracle.com No entanto, você precisa ser autenticado.

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

De acordo com os comentários no post no blog, O controlador do ojdbc deverá estar disponível nas seguintes coordenadas:

<groupId>com.oracle.weblogic</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.3-0-0</version>
 <packaging>jar</packaging>
 22
Author: Sebastien, 2015-01-21 14:20:59

Tenta com:

<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, 2015-12-24 08:46:43

O controlador do Oracle JDBC está agora disponível no repositório do Oracle Maven (não no centro).

<dependency>
    <groupId>com.oracle.jdbc</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.2</version>
</dependency>

O repositório Oracle Maven requer um registo do utilizador. As instruções podem ser encontradas em:

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

 15
Author: Bienvenido David, 2018-06-06 02:29:26

1. Como encontro um repositório (se existir) que contenha este artefato?

Todos a base de dados da Oracle JDBC Driverssão distribuídos ao abrigo do Acordo de licença do OTN .

Se ler o Acordo de licença OTN, encontrará este Termo de licença:

Não pode:
...
- distribua os programas a menos que sejam acompanhados das suas aplicações;
...

Então é por isso que não consegues encontrar o frasco do condutor em nenhum Maven público. Repositório, porque seria distribuído sozinho, e se acontecesse seria uma violação de licença.

Adicionando a dependência:

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

(ou qualquer outra versão posterior) faz com que a Maven baixe apenas o ojdbc14-10.2.0.3.0.pom, e nesse pom você pode ler:

...
<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>
...
Que o informa sobre a Licença OTN.

2. Como posso adicioná-lo para que a Maven o use?

Para que a dependência acima funcione, concordo comvictor hugo Quem te estava a sugeriraqui para instalar manualmente o jar no seu repositório Maven local (a pasta .m2), executando:

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

Mas eu quero acrescentar que o termo da licença acima não limita apenas onde você não pode encontrar o jar JDBC, mas limita onde você instalá-lo também!

Na verdade, o seu repositório Maven local deve ser privado e não partilhado, porque se fosse partilhado seria uma espécie de distribuição em que o jarro é distribuído sozinho, mesmo que para um pequeno grupo de pessoas em a sua rede local, e isto representa uma violação do Acordo de licença do OTN .

Além disso, eu acho que você deve evitar instalar o JDBC jarra de sua empresa repositório gerente de (como Artifactory ou Nexus), como um único artefato, porque se ele foi instalado, ele ainda seria distribuído sozinho, mesmo se as pessoas na sua organização, e isso representa um OTN Contrato de Licença de violação.

 14
Author: taringamberini, 2017-11-13 13:32:04

Você pode usar Nexus para gerir as dependências de terceiros, bem como as dependências nos repositórios de maven padrão.

 12
Author: Michael Munsey, 2011-12-31 20:35:27
Até agora, não é possível usar repositórios maven. Estou a usar a ivy como ferramenta de gestão de dependências, mas também uso repositórios ibiblio do maven2. E isto está a funcionar para a ivy.
<dependency org="oracle" name="ojdbc14" rev="10.2.0.2" conf="*->default"/>
A dependência de Maven2 pode ser algo do género:
<dependency> 
    <groupId>oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.2</version> 
</dependency>

Repare que eu definir http://download.java.net/maven/2/ e http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext] como externas repos maven2 nas minhas configurações de ivy.

 6
Author: tugcem, 2012-08-20 07:53:10
Boas notícias a todos! 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
 3
Author: Vladimir Chervanev, 2017-06-14 15:38:40
Alguns produtos Oracle suportam a publicação de artefactos maven para um repositório local. Os produtos têm um diretório plugin/maven que contém descrições onde encontrar esses artefatos e onde armazená-los. Há um Plugin do Oracle que irá realmente fazer o upload.

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

Um dos produtos que podem enviar OJDBC desta forma é o WLS, por muito estranho que seja. coordenadas:
<groupId>com.oracle.weblogic</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.2-0-0</version>
 1
Author: eckes, 2014-04-04 11:47:20
Eu envio a opensource sob a LGPLv2 e mesmo depois de várias conversas por e-mail com a Oracle, eles não sabiam se eu tinha permissão para enviar o seu condutor binário JDBC com a minha distribuição. A questão era se minha licença era compatível com seus termos OTN, então eles sugeriram que eu não tinha permissão para enviar o motorista. Presumivelmente relacionado com esta parte

(b) para distribuir os programas com aplicações que desenvolveu aos seus clientes desde que cada um desses licenciados concorda em licenciar Termos consistentes com os termos deste acordo

Por isso, mesmo que consiga publicar o driver legalmente no seu repositório Maven exclusivo/local, ainda existe a restrição sobre o que lhe é permitido fazer com esse artefacto. Parece absurdo que mesmo se eu enviar seu motorista em forma binária, juntamente com o arquivo completo de licença OTN eu ainda não posso usá - lo e deve forçar meus usuários a baixar manualmente o driver Oracle e cair no meu caminho da Biblioteca antes que eles possam usar o meu software.
 1
Author: Craig, 2015-05-19 04:23:27
Há um acordo que fornece o frasco. No SBT adicione uma resolução semelhante a esta: "oracle driver repo" at " http://dist.codehaus.org/mule/dependencies/maven2"

E uma dependência: "oracle" % "ojdbc14" % "10.2.0.2"

Podes fazer o mesmo com a maven. pom.o xml e o jar estão disponíveis ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/).
 0
Author: yǝsʞǝlA, 2013-09-05 20:48:10

Se estiver a usar o Netbeans, vá para dependências e instale manualmente o artefacto. Localiza o teu download .jar file e está feito. a construção limpa resolverá quaisquer problemas.

 0
Author: Zafrullah Syed, 2015-02-04 11:13:55

Pode encontrar um projecto de amostra simples do Github para usar um controlador do Oracle JDBC no projecto Maventoma..

Podes encontrar todas as explicações para a tua integração contínua, uma amostra e analisar o Travis-CI.

DEMONSTRAÇÃO

 0
Author: sgrillon, 2018-10-03 08:56:35

Resolvido

  • Faça Por Favor a seguinte configuração para resolver o erro

Este repositório precisa de ser ativado para encontrar dependecies Oracle 10.0.3.0 (esta configuração precisa ser feita no Buildconfig.fixe. Graal.projecto.dependência.resolver = " ivy " / / ou ivy

Usar também a seguinte configuração para a transferência do controlador Oracle do tempo de compilação

"Runtime" com.oráculo: ojdbc: 10.2.0.3.0 " Isto deve resolver o teu problema por não encontrares o condutor do Oráculo. application
 -3
Author: Makarand, 2014-06-10 01:12:40