|
|
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
Копаюсь с 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? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 22:09:07 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
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 при сборке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 09:10:55 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
У нас внешние интерфейсы EJB со всеми эксепштнами и виртуальными объектами вынесены в отдельный модуль. Очень удобно. Сам не пробовал, но думаю можно заставить мавен напрямую или через ant, компилить внешние интерфейсы ejb в отдельный jar, только вот как потом в описании другого модуля указать, что ему нужен только внешний интерфейс, даже не знаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 10:44:50 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
Legka Проблема два: Есть некий класс Foo, используемый во всех модулях; а также класс Bar используемый только в некоторых из них (но не в каком-то одном!). Вопрос: Куда пихать Foo.java и Bar.java чтобы они собирались так же, как и вышеупомянутые интерфейсы EJB? Заранее спасибо. А вот таким дроблением можно и затр...ся. Если классы Foo и Bar относятся к одной предметной области, то и делай одну библиотеку из них и таскай везде и пофиг какой класс чаще используется. А если они совсем разные, то разноси по отдельным библиотекам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 10:49:13 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
brutА сам EJB модуль указать как тот который используется только для компиляции, при сборке не упаковывать. Насчет этого недопонял. Вы имели ввиду модуль common? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 23:28:04 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
wessenУ нас внешние интерфейсы EJB со всеми эксепштнами и виртуальными объектами вынесены в отдельный модуль. Очень удобно. Сам не пробовал, но думаю можно заставить мавен напрямую или через ant, компилить внешние интерфейсы ejb в отдельный jar, только вот как потом в описании другого модуля указать, что ему нужен только внешний интерфейс, даже не знаю... Так получается два жарника - в одном интерфейсы, в другом реализация. Я правильно понял? Как это дело потом деплоится? Подозреваю, что контейнер ожидает увидеть один жар для EJB модуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 23:32:57 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
Legka brutА сам EJB модуль указать как тот который используется только для компиляции, при сборке не упаковывать. Насчет этого недопонял. Вы имели ввиду модуль common? Ejb і Common упаковывать в EAR (если используете) Ejb для компиляции нужен Common, его использовать только для компиляции но не упаковывать в Ejb Legka wessenУ нас внешние интерфейсы EJB со всеми эксепштнами и виртуальными объектами вынесены в отдельный модуль. Очень удобно. Сам не пробовал, но думаю можно заставить мавен напрямую или через ant, компилить внешние интерфейсы ejb в отдельный jar, только вот как потом в описании другого модуля указать, что ему нужен только внешний интерфейс, даже не знаю... Так получается два жарника - в одном интерфейсы, в другом реализация. Я правильно понял? Как это дело потом деплоится? Подозреваю, что контейнер ожидает увидеть один жар для EJB модуля. контейнеру все равно, но в даном случае он один и увидит. Common простой jar не EJB там не реализации EJB только интерфейсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 10:41:03 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
Legka Так получается два жарника - в одном интерфейсы, в другом реализация. Я правильно понял? Как это дело потом деплоится? Подозреваю, что контейнер ожидает увидеть один жар для EJB модуля. Да, понял все правильно. Контейнеру пофиг до джаров, он вероятно даже не знает об их существовании. Контейнер работает с уже загруженными классами и ресурсами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:05:48 |
|
||
|
Взаимозависимости модулей в maven
|
|||
|---|---|---|---|
|
#18+
LegkaНапрашивается решение разбить EJB модуль на 2 - интерфейсы и реализация отдельно друг от друга Вообще-то это и есть 'классическое правильное' решение - интерфейсы должны быть вынесены и дёргаться в дальнейшем будут именно они, а кто, где, как, етс поставляет их реализацию другие модули вообще не должно никак беспокоить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2007, 12:57:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34756542&tid=2144769]: |
0ms |
get settings: |
19ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
61ms |
get topic data: |
16ms |
get forum data: |
5ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 384ms |
| total: | 592ms |

| 0 / 0 |
