307 votes

Trouvez Oracle JDBC driver dans le repository Maven

Je tiens à ajouter de l'oracle jdbc driver pour mon projet de dépendance (à l'exécution de la portée) - ojdbc14. Dans MVNrepository site de 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 n'est pas dans le référentiel central utilisé par maven. 2 questions:

  1. Comment puis-je trouver un référentiel (le cas échéant) que contient cet artefact?

  2. Comment puis-je ajouter de sorte que Maven va l'utiliser?

425voto

victor hugo Points 16700

Comment puis-je trouver un référentiel (le cas échéant) que contient cet artefact?

Malheureusement, en raison de la licence binaire il n'existe pas de référentiel public avec l'Oracle JAR du Pilote. Cela se produit avec de nombreuses dépendances, mais n'est pas Maven est la faute de. Si vous trouvez un dépôt public contenant le POT, vous pouvez être sûr que c'est illégal.

Comment puis-je ajouter de sorte que Maven va l'utiliser?

Certains des Pots qui ne peuvent pas être ajoutés en raison de la licence raisons ont une pom entrée dans le repo Maven Central. Juste check it out, il contient le fournisseur préféré de Maven info:

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

...et l'URL pour télécharger le fichier qui est dans ce cas http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html.

Une fois que vous avez téléchargé le fichier JAR il suffit de l'ajouter à votre ordinateur référentiel (notez que j'ai tiré le groupId, artifactId et la version de la POM):

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
     -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true

Le dernier paramètre pour générer une POM va vous sauver de pom.xml avertissements

Si votre équipe a un référentiel Maven local ce guide peut être utile de télécharger le JAR.

53voto

Marvo Points 5444

Pour quelque raison que ce soit, je ne pouvais pas obtenir l'une des solutions ci-dessus pour travailler. (Toujours pas.)

Ce que j'ai fait, c'est plutôt pour inclure le pot dans mon projet (blech), puis de créer un "système" de la dépendance elle qui indique le chemin vers le bocal. Ce n'est probablement pas la bonne façon de le faire, mais il fonctionne. Et il élimine le besoin pour les autres développeurs de l'équipe (ou le gars la configuration du serveur de build) pour mettre le pot dans leurs espaces de stockage locaux.

Mise à JOUR: Cette solution fonctionne pour moi quand je lance Hibernate Tools. Il ne semble PAS que les travaux pour la construction du fichier WAR, cependant. Elle ne comprend pas les ojdbc6.jar fichier dans la cible de la GUERRE de fichier.

1) Créez un répertoire appelé "lib" dans la racine de votre projet.

2) Copier le ojdbc6.jar fichier (quel que soit le bocal est appelé.)

3) Créer une dépendance qui ressemble à quelque chose comme ceci:

<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>

Laid, mais fonctionne pour moi.

Inclure les fichiers dans le fichier war ajouter les éléments suivants à votre 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>

30voto

Peter Enis Points 31

Télécharger le pot et le placer dans votre projet src/lib. Maintenant, vous pouvez utiliser le programme d'installation de maven plugin.

<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>

Maintenant, vous n'avez qu'à exécuter mvn clean une fois et l'oracle lib est installé dans votre local repository maven.

12voto

Michael Munsey Points 911

Vous pouvez utiliser Nexus pour gérer la 3e partie des dépendances ainsi que les dépendances de maven standard dépôts.

5voto

tugcem Points 339

Jusqu'à maintenant, il n'est pas possible d'utiliser maven dépôts. Je suis à l'aide d'ivy, puisque la dépendance de l'outil de gestion, mais aussi utiliser de maven2' s ibiblio dépôts. Et c'est en travaillant pour le lierre:

<dependency org="oracle" name="ojdbc14" rev="10.2.0.2" conf="*->default"/>

Maven2' s de la dépendance pourrait être quelque chose comme ça:

<dependency> 
    <groupId>oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.2</version> 
</dependency>

Notez que j'définir http://download.java.net/maven/2/ et http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext] externe maven2 repos sur mon lierre paramètres.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X