#maven #jakarta-ee #scope #dependencies #wildfly
#maven #джакарта-ee #область #зависимости #wildfly
Вопрос:
Эй, я пишу проект, который включает в себя 2 других проекта maven:
-
JPA с проектом EJB (слой DAO) packaging .jar
-
Упаковка проекта Rest Services.war
Я нашел помощь в настройке зависимости с помощью eclipse. В моем проекте war я добавил локальный проект с DAOS. Компиляция, сборка (чистая установка mvn на двух pom.xml ) прошел успешно. Но я не могу развернуть его на сервере wildfly. Я получаю NoClassDef класса из моего пакета jar.
С другой стороны, я видел много проектов с упаковкой DAO в jar. Но есть аннотации EJB3. Будут ли они работать с сервером JEE в этой конфигурации?(Им не нужно web.xml так что, возможно, это правильно). Какую область я должен установить для своего зависимого проекта DAO? Если у меня ошибка NoClassDef, кажется, что во время выполнения нет скомпилированных классов, или есть 2 или более определений классов из этого пакета. Я пробовал несколько конфигураций, но не могу найти решение.
Может ли кто-нибудь написать рекомендации по настройке проектов maven? Например
-
Тип слоя DAO: jar
-
Тип слоя служб 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