Maven - Dependências Externas

Como você sabe, o Maven faz o gerenciamento de dependências usando o conceito de Repositórios. Mas o que acontece se a dependência não estiver disponível em nenhum dos repositórios remotos e no repositório central? Maven fornece resposta para tal cenário usando o conceito deExternal Dependency.

Por exemplo, vamos fazer as seguintes alterações no projeto criado no capítulo 'Criando projeto Java'.

  • Adicionar lib pasta para a pasta src.

  • Copie qualquer jar para a pasta lib. Nós usamosldapjdk.jar, que é uma biblioteca auxiliar para operações LDAP.

Agora, a estrutura do nosso projeto deve se parecer com o seguinte -

Aqui você tem sua própria biblioteca, específica para o projeto, que é um caso usual e contém jars, que podem não estar disponíveis em nenhum repositório para download do maven. Se o seu código estiver usando esta biblioteca com o Maven, a compilação do Maven falhará, pois não pode baixar ou consultar esta biblioteca durante a fase de compilação.

Para lidar com a situação, vamos adicionar esta dependência externa ao maven pom.xml usando a seguinte maneira.

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

Observe o segundo elemento de dependência em dependências no exemplo acima, que limpa os seguintes conceitos-chave sobre External Dependency.

  • As dependências externas (localização do jar da biblioteca) podem ser configuradas em pom.xml da mesma maneira que outras dependências.

  • Especifique groupId igual ao nome da biblioteca.

  • Especifique artifactId igual ao nome da biblioteca.

  • Especifique o escopo como sistema.

  • Especifique o caminho do sistema relativo ao local do projeto.

Espero que agora você esteja claro sobre as dependências externas e seja capaz de especificar dependências externas em seu projeto Maven.