LINUX.ORG.RU

maven и зависимые друг от друга проекты

 ,


0

1

Здравствуйте.
Помогите разобраться с maven'ом.
Есть проекты A, B, C. У проекта A в зависимостях стоят проекты B и C.
Билдю в нетбинзе. При этом билдится только сам проект A (даже если делать Build with dependencies).
Как сделать, чтобы при билде проекта A билдились и B, и C и кидались в /lib?
Модули? Assembly? Reactor? Запутался уже. Толком ничего не получилось.

PS: при этом web-проекты билдятся с зависимостями - те, как и надо, кидаются в WEB-INF/lib

★★★★★

У maven идеология работы с зависимостями другая — у него каждый проект независимо собирается и релизится.

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

Ну вот перевели проекты на maven. Как теперь в рамках этой идеологии билдить зависимые проекты?

kovrik ★★★★★
() автор топика
Ответ на: комментарий от BillDver

А чего как сложно?
Если раньше можно было просто сбилдить, потом скопировать всё нужное на сервер - и все работало. А теперь кучу сторонних вещей ставить...кошмар.

kovrik ★★★★★
() автор топика
Ответ на: комментарий от maxcom

А еще: хорошо, допустим, я отдельно каждый проект сбилдил.
Первая проблема - почему-то в манифесте не прописывается Main-Class. Ну ладно, это сам прописываю. Пытаюсь запустить - пишет, что не найден такой-то класс. Ок, запускаю с указанием classpath'а (туда, где все зависимости лежат) - а он все равно ен находит класс. Почему так может быть?

kovrik ★★★★★
() автор топика
Ответ на: комментарий от kovrik

Первая проблема - почему-то в манифесте не прописывается Main-Class. Ну ладно, это сам прописываю. Пытаюсь запустить - пишет, что не найден такой-то класс. Ок, запускаю с указанием classpath'а (туда, где все зависимости лежат) - а он все равно ен находит класс. Почему так может быть?

Ну наверное ты не так classpath указал — в нем должен быть не каталог с .jar, а перечисление всех jar'ов.

Я обычно собираю один общий jar с упакованными в него зависимостями с использованием shade plugin. Но это может быть не тривиально если хочется вместе с ПО упаковать что-нибудь забористое вроде частей geronimo или glassfish

maxcom ★★★★★
()
Ответ на: комментарий от kovrik

Ну вот перевели проекты на maven. Как теперь в рамках этой идеологии билдить зависимые проекты?

Собираешь и релизишь то что изменилось. Потом апдейтишь версии в проектах-пользователях и пересобираешь их. Часть этих вещей автоматизируется разными плагинами вроде versions plugin и release plugin.

maxcom ★★★★★
()
Ответ на: комментарий от kovrik

Перечисление всех jar'ок тоже не работает.

Ну если у тебя с запустом jar проблемы, то с этим и надо разбираться. Maven к этому моменту уже закончил свою работу.

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

Разобрался. В манифест не прописывал main-class и class-path при сборке. Это отдельным плагином настраивается. Теперь все прописывает, но не копирует зависимости - так что надо будет попробовать этот shader.

PS: всё таки Ant проще

kovrik ★★★★★
() автор топика
Ответ на: комментарий от kovrik

Он копировать и не должен. Assembly для этого предназначен. Вот с его помощью можно делать дистрибутивы без юбер-джара. Хотя это как кому удобнее.

svr69 ★★
()
Ответ на: комментарий от svr69

Ну я пока ручками копирую. Сейчас вот буду разбираться, смотреть что лучше подойдет - убер-джар или автоматическое копирование через Assembly.
Спасибо!

kovrik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.