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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!