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