Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Взаимозависимости модулей в maven / 9 сообщений из 9, страница 1 из 1
26.08.2007, 22:09:07
    #34753291
Legka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
Копаюсь с maven - не нахожу, как разруливается следующая ситуёвина:

Имеем:
- EJB модуль (интерфейсы и реализация)
- Web модуль (клиент EJB)
- другой клиент того же EJB (а ля java-модуль)
- еще некий модуль (не зависит от EJB модуля)

Пердполагается, что каждый модуль работает в своей JVM. Maven компилит и собирает все ето добро в jar'ники (war'ник в случай с Web модулем).

Проблема раз: EJB интерфейсы отсутствуют в сборках клиентов, а кидать EJB jar в либы клиентов некорректно - на клиенте нужны только интерфейсы.
Вопрос: Как заставить maven package'ить интерфейсы в клиентах? Напрашивается решение разбить EJB модуль на 2 - интерфейсы и реализация отдельно друг от друга, но что-то мне это решение не очень нравится.

Проблема два: Есть некий класс Foo, используемый во всех модулях; а также класс Bar используемый только в некоторых из них (но не в каком-то одном!).
Вопрос: Куда пихать Foo.java и Bar.java чтобы они собирались так же, как и вышеупомянутые интерфейсы EJB?

Заранее спасибо.
...
Рейтинг: 0 / 0
27.08.2007, 09:10:55
    #34753471
brut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
Legka Напрашивается решение разбить EJB модуль на 2 - интерфейсы и реализация отдельно друг от друга, но что-то мне это решение не очень нравится.

Проблема два: Есть некий класс Foo, используемый во всех модулях; а также класс Bar используемый только в некоторых из них (но не в каком-то одном!).
Вопрос: Куда пихать Foo.java и Bar.java чтобы они собирались так же, как и вышеупомянутые интерфейсы EJB?

Заранее спасибо.
Почему не нравится? ИМХО нормальное решение ввести модуль Common в котором будут интерфейсы. Зависимость будет: Web от Common; Ejb от Common. А сам EJB модуль указать как тот который используется только для компиляции, при сборке не упаковывать.
http://]maven.apache.org/pom.html#Dependencies
Посмотрите, на scope.
Наличие модуля Common позволят выносить туда все общее, что, опять таки ИМХО, гараздо понятние чем копировать класы из EJB в Web при сборке.
...
Рейтинг: 0 / 0
27.08.2007, 10:44:50
    #34753742
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
У нас внешние интерфейсы EJB со всеми эксепштнами и виртуальными объектами вынесены в отдельный модуль. Очень удобно.

Сам не пробовал, но думаю можно заставить мавен напрямую или через ant, компилить внешние интерфейсы ejb в отдельный jar, только вот как потом в описании другого модуля указать, что ему нужен только внешний интерфейс, даже не знаю...
...
Рейтинг: 0 / 0
27.08.2007, 10:49:13
    #34753754
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
Legka

Проблема два: Есть некий класс Foo, используемый во всех модулях; а также класс Bar используемый только в некоторых из них (но не в каком-то одном!).
Вопрос: Куда пихать Foo.java и Bar.java чтобы они собирались так же, как и вышеупомянутые интерфейсы EJB?

Заранее спасибо.

А вот таким дроблением можно и затр...ся. Если классы Foo и Bar относятся к одной предметной области, то и делай одну библиотеку из них и таскай везде и пофиг какой класс чаще используется. А если они совсем разные, то разноси по отдельным библиотекам.
...
Рейтинг: 0 / 0
27.08.2007, 23:28:04
    #34756532
Legka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
brutА сам EJB модуль указать как тот который используется только для компиляции, при сборке не упаковывать.

Насчет этого недопонял. Вы имели ввиду модуль common?
...
Рейтинг: 0 / 0
27.08.2007, 23:32:57
    #34756542
Legka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
wessenУ нас внешние интерфейсы EJB со всеми эксепштнами и виртуальными объектами вынесены в отдельный модуль. Очень удобно.

Сам не пробовал, но думаю можно заставить мавен напрямую или через ant, компилить внешние интерфейсы ejb в отдельный jar, только вот как потом в описании другого модуля указать, что ему нужен только внешний интерфейс, даже не знаю...

Так получается два жарника - в одном интерфейсы, в другом реализация. Я правильно понял? Как это дело потом деплоится? Подозреваю, что контейнер ожидает увидеть один жар для EJB модуля.
...
Рейтинг: 0 / 0
28.08.2007, 10:41:03
    #34757061
brut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
Legka brutА сам EJB модуль указать как тот который используется только для компиляции, при сборке не упаковывать.

Насчет этого недопонял. Вы имели ввиду модуль common?
Ejb і Common упаковывать в EAR (если используете)
Ejb для компиляции нужен Common, его использовать только для компиляции но не упаковывать в Ejb

Legka wessenУ нас внешние интерфейсы EJB со всеми эксепштнами и виртуальными объектами вынесены в отдельный модуль. Очень удобно.

Сам не пробовал, но думаю можно заставить мавен напрямую или через ant, компилить внешние интерфейсы ejb в отдельный jar, только вот как потом в описании другого модуля указать, что ему нужен только внешний интерфейс, даже не знаю...

Так получается два жарника - в одном интерфейсы, в другом реализация. Я правильно понял? Как это дело потом деплоится? Подозреваю, что контейнер ожидает увидеть один жар для EJB модуля.
контейнеру все равно, но в даном случае он один и увидит. Common простой jar не EJB там не реализации EJB только интерфейсы.
...
Рейтинг: 0 / 0
28.08.2007, 11:05:48
    #34757156
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
Legka
Так получается два жарника - в одном интерфейсы, в другом реализация. Я правильно понял? Как это дело потом деплоится? Подозреваю, что контейнер ожидает увидеть один жар для EJB модуля.

Да, понял все правильно.
Контейнеру пофиг до джаров, он вероятно даже не знает об их существовании. Контейнер работает с уже загруженными классами и ресурсами.
...
Рейтинг: 0 / 0
30.08.2007, 12:57:05
    #34764310
hyh
hyh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимозависимости модулей в maven
LegkaНапрашивается решение разбить EJB модуль на 2 - интерфейсы и реализация отдельно друг от друга
Вообще-то это и есть 'классическое правильное' решение - интерфейсы должны быть вынесены и дёргаться в дальнейшем будут именно они, а кто, где, как, етс поставляет их реализацию другие модули вообще не должно никак беспокоить.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Взаимозависимости модулей в maven / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]