2012-04-11 6 views
1

J'ai quelques jars tiers qui ne sont pas dans le référentiel que j'ai besoin d'installer lors d'une construction. J'essaie d'utiliser le plugin ant pour copier le fichier jar et pom de mon dossier projects/lib vers le dépôt localmaven exécuter maven installer à partir de l'intérieur pom

mon répertoire src/main/lib contient la structure de dossier suivante com/oracle/ojdbc14/10.2/ojdbc. pot, ojdbc.pom

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <copy todir="${settings.localRepository}" > 
           <fileset dir="${basedir}/src/main/lib/" includes="**"/> 
          </copy> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Mais quand je lance mvn installer, il échoue avec le msg suivant

Failure to find com.oracle:ojdbc14:jar:10.2.0.3.0 

pourquoi la commande de copie à partir (phase valider) ant exécuter avant toute vérification est faite en ce qui concerne dépendances

Répondre

3

Obtenez un gestionnaire de dépôt et installer l'artefact il. Tout le reste est un hack laid qui est beaucoup plus envahissant et gênant que l'installation et l'utilisation d'un gestionnaire de référentiel. Regardez Nexus, Artifactory ou Archiva et bénéficiez de tous les avantages de l'utiliser comme des performances de construction améliorées, la facilité d'utilisation des bibliothèques tierces et la possibilité de partager des artefacts en interne ..

3

Désolé, mais c'est complètement nul. Si vous vraiment ne pouvez pas déployer ce matériel de tiers à une sorte de repo Maven interne ou privé, la meilleure façon de faire une telle chose que j'ai trouvé jusqu'à présent est d'utiliser l'objectif install:install-file avec tous ces pots. Nous avons créé 2 scripts shell (pour Windows et Linux) pour cela et les partage par SCM dans le répertoire bootstrap (ou quelque chose comme ça). Notez que chaque nouveau développeur doit le faire une fois, car ces artefacts peuvent être résolus dans le repo Maven local.

Regardez ce pour plus de détails sur install:install-file objectif: http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

+0

D'après ce que vous avez écrit, pourquoi ne pas installer un gestionnaire de repo? et installez les artefacts une seule fois pour tous les développeurs ... afin que chaque développeur puisse commencer à travailler sans problèmes. – khmarbaise