Проект Maven war с jars

#maven #jakarta-ee #scope #dependencies #wildfly

#maven #джакарта-ee #область #зависимости #wildfly

Вопрос:

Эй, я пишу проект, который включает в себя 2 других проекта maven:

  1. JPA с проектом EJB (слой DAO) packaging .jar

  2. Упаковка проекта Rest Services.war

Я нашел помощь в настройке зависимости с помощью eclipse. В моем проекте war я добавил локальный проект с DAOS. Компиляция, сборка (чистая установка mvn на двух pom.xml ) прошел успешно. Но я не могу развернуть его на сервере wildfly. Я получаю NoClassDef класса из моего пакета jar.

С другой стороны, я видел много проектов с упаковкой DAO в jar. Но есть аннотации EJB3. Будут ли они работать с сервером JEE в этой конфигурации?(Им не нужно web.xml так что, возможно, это правильно). Какую область я должен установить для своего зависимого проекта DAO? Если у меня ошибка NoClassDef, кажется, что во время выполнения нет скомпилированных классов, или есть 2 или более определений классов из этого пакета. Я пробовал несколько конфигураций, но не могу найти решение.

Может ли кто-нибудь написать рекомендации по настройке проектов maven? Например

  1. Тип слоя DAO: jar

  2. Тип слоя служб Rest: war, зависимость: DAO { область действия: по умолчанию, тип: jar}

Комментарии:

1. Какие аннотации EJB3 вы используете?

Ответ №1:

Я думаю, что хорошей практикой было бы определить родительский проект (Parent POM), который должен определять задействованный модуль:

 <modules>
    <module>application-dao</module>
    <module>application-rest</module>
</modules>
  

и определите в качестве зависимости ваше приложение «.jar»

 <dependency>
    <groupId>com.test</groupId>
    <artifactId>application-dao</artifactId>
    <version>${project.version}</version>
    <scope>compile</scope>
</dependency>
  

Рекомендация, которую вы могли бы добавить дополнительный уровень управления, тогда вы бы

  • приложение-dao
  • ядро приложения
  • приложение-rest