Как упаковать и подготовить модуль EJB, используя несколько файлов JAR? - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь создать проект maven (ear), который будет поддерживать модульность для EJB-компонентов.Я имею в виду, что объекты buissnes должны быть помещены в отдельные файлы jar.Примерно так:

application.ear
|__ users.jar 
|__ cars.jar
|__ phones.jar
|__ application-ejb.ejb
|__ application-web.war  

каждая банка включает сущности, фасады и услуги, которые предоставляют данные для войны

users.jar
|__ User.class (@Entitiy)
|__ UserService.class (@Named, @RequestScoped)
|__ UserFacadeLocal.class (@Stateless, @Local, @PersistenceContext) 

phones.jar
|__ Phone.class (@Entitiy)
|__ PhoneService.class (@Named, @RequestScoped)
|__ PhoneFacadeLocal.class (@Stateless, @Local, @PersistenceContext)

cars.jar
|__ Car.class (@Entitiy)
|__ CarService.class (@Named, @RequestScoped)
|__ CarFacadeLocal.class (@Stateless, @Local, @PersistenceContext)

А теперь мой вопрос заключается в том, как упаковать эти 3 банки в один ejb во времякакой-то мавенский этап?(если это возможно, конечно, и как это сделать ??), и в результате я получу что-то вроде:

application-ejb.ejb
|__ User.class (@Entitiy)
|__ UserService.class (@Named, @RequestScoped)
|__ UserFacadeLocal.class (@Stateless, @Local, @PersistenceContext)     
|__ Phone.class (@Entitiy)
|__ PhoneService.class (@Named, @RequestScoped)
|__ PhoneFacadeLocal.class (@Stateless, @Local, @PersistenceContext) 
|__ Car.class (@Entitiy)
|__ CarService.class (@Named, @RequestScoped)
|__ CarFacadeLocal.class (@Stateless, @Local, @PersistenceContext)

или есть другой способ использования просто зависимости в maven

    <dependency>
        <groupId>org.application</groupId>
        <artifactId>application-ejb</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.users</groupId>
        <artifactId>users</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.cars</groupId>
        <artifactId>cars</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.phones</groupId>
        <artifactId>phones</artifactId>
        <version>1.0</version>
    </dependency>

Может кто-нибудь помочь мне решить проблему?Буду благодарен за любую помощь

1 Ответ

0 голосов
/ 16 декабря 2018

Вы можете реализовать концепцию ' Skinny WARs ', разместив эти JAR-файлы в директории EAR in-lib с помощью конфигурации * defaultLibBundleDir 'плагина Maven EAR:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ear-plugin</artifactId>
    <version>2.x</version>
    <configuration>
        <defaultLibBundleDir>lib</defaultLibBundleDir>

Для получения более подробной информации см. Следующую статью: Создание тощих WAR

...