1
resposta

Como compartilhar as dependencias entre os modulos?

Bom dia, no caso de um projeto contendo um ejb.jar e varios projetos .war, como faço para que o ejb e suas dependencias sejam compartilhadas entre os .war e não empacotados dentro de cada .war repetidamente?

AppServer: Wildfly 20

1 resposta

Olá Deleon, tudo bem?

Para compartilhar as dependências entre os módulos em um projeto que contém um ejb.jar e vários projetos .war, você pode utilizar o recurso de dependencyManagement do Maven.

Primeiramente, é necessário criar um projeto pai (parent) para os projetos ejb e war. Nesse projeto pai, você deve definir as dependências que serão compartilhadas entre os módulos no bloco dependencyManagement do arquivo pom.xml. Por exemplo:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.4.12.Final</version>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>42.2.12</version>
    </dependency>
  </dependencies>
</dependencyManagement>

Em seguida, nos arquivos pom.xml dos projetos ejb e war, você deve adicionar as dependências que deseja utilizar, sem especificar a versão. Por exemplo:

<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
  </dependency>
</dependencies>

Dessa forma, o Maven irá buscar a versão das dependências definidas no projeto pai e utilizá-las nos módulos.

Espero ter ajudado e bons estudos!