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!