2013-02-23 2 views
0

У меня есть военный проект A, который я развертываю в JBoss AS7, который использует CDI, и все работает нормально. Но я хочу использовать некоторые классы в другом проекте B, который я добавил в свой pom.xml и включил разрешение рабочей области, потому что эти классы будут разделены несколькими военными проектами.M2E Eclipse Maven Разрешение рабочей области и CDI

Теперь эти классы работают отлично, если они находятся в военном проекте A, но когда я перемещаю их в B, CDI на них перестает работать. В другом проекте B есть webapp/WEB-INF/beans.xml, но, глядя на развернутую войну A, проект B представлен как баннер, содержащий только файлы классов, no beans.xml. CDI не будет работать, несмотря ни на что.

Единственным решением для получения beans.xml, включенного в B, является установка Bs-упаковки на войну, после чего она не упакована, а развертывается как каталог (называемый банком), что приводит к сбою JBoss, и который включает все библиотеки A и B во второй раз.

Я немного потерял - я действительно ограничен использованием одного проекта монстров, если я хочу использовать CDI в этой ситуации?

+0

Чтобы использовать B как банку и сообщить об этом в главном военном случае, вы должны поместить файлы конфигурации в путь к объекту проекта, это означает папку META-INF. –

+0

Как я уже писал, я уже использую B как банку. Это не проблема, проблема в том, что CDI не работает на классах, импортированных из jar, у которого нет beans.xml, и что я не могу его экспортировать с beans.xml – Torque

+0

Поместите свой beans.xml файл в папку */src/main/resources *. Затем постройте его как банку. –

ответ

1

Ваша проблема в том, что вы следите за структурой проекта войны в проект jar, так что ваш файл конфигурации не заканчивается в пути к пути вашего конечного проекта. Чтобы решить это, переместите его в каталог /src/main/resources и Maven сможет перераспределить его, когда вы построили его. Взгляните на объяснение Maven standard layout.

Смежные вопросы