Maven - Dépendances externes

Comme vous le savez, Maven fait la gestion des dépendances en utilisant le concept de référentiels. Mais que se passe-t-il si la dépendance n'est disponible dans aucun des référentiels distants et du référentiel central? Maven fournit une réponse pour un tel scénario en utilisant le concept deExternal Dependency.

Par exemple, apportons les modifications suivantes au projet créé dans le chapitre «Création d'un projet Java».

  • Ajouter lib dossier dans le dossier src.

  • Copiez n'importe quel fichier jar dans le dossier lib. Nous avons utiliséldapjdk.jar, qui est une bibliothèque d'aide pour les opérations LDAP.

Maintenant, notre structure de projet devrait ressembler à ce qui suit -

Ici, vous avez votre propre bibliothèque, spécifique au projet, ce qui est un cas habituel et elle contient des fichiers JAR, qui peuvent ne pas être disponibles dans aucun référentiel pour que maven puisse être téléchargé. Si votre code utilise cette bibliothèque avec Maven, la compilation de Maven échouera car elle ne peut pas télécharger ou faire référence à cette bibliothèque pendant la phase de compilation.

Pour gérer la situation, ajoutons cette dépendance externe à maven pom.xml en utilisant la manière suivante.

<project xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.bank</groupId>
   <artifactId>consumerBanking</artifactId>
   <packaging>jar</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>consumerBanking</name>
   <url>http://maven.apache.org</url>

   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>

      <dependency>
         <groupId>ldapjdk</groupId>
         <artifactId>ldapjdk</artifactId>
         <scope>system</scope>
         <version>1.0</version>
         <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
      </dependency>
   </dependencies>

</project>

Regardez le deuxième élément de dépendance sous les dépendances dans l'exemple ci-dessus, qui efface les concepts clés suivants sur External Dependency.

  • Les dépendances externes (emplacement du fichier jar de la bibliothèque) peuvent être configurées dans pom.xml de la même manière que les autres dépendances.

  • Spécifiez groupId identique au nom de la bibliothèque.

  • Spécifiez artifactId comme le nom de la bibliothèque.

  • Spécifiez la portée comme système.

  • Spécifiez le chemin du système par rapport à l'emplacement du projet.

J'espère que vous êtes maintenant clair sur les dépendances externes et que vous pourrez spécifier des dépendances externes dans votre projet Maven.