Повторное использование модуля maven в качестве зависимостей - PullRequest
2 голосов
/ 07 апреля 2011

Я надеялся, что смогу разделить свои проекты на подмодули Maven и использовать их как зависимость Maven для других проектов.

Как я понял из документа, дочерние модули должны указывать свой родительский проект.Это делает их непригодными для повторного использования в качестве зависимостей.

Это делает разделение на модули гораздо менее привлекательным, IMHO.Или я что-то упускаю?

Я склонен делить проекты на компоненты, когда мне нужно поделиться ими.Иначе зачем?

Может кто-нибудь уточнить это?

Можно ли объявить модуль, в котором не указан его родитель?Как можно реорганизовать зависимость и все ее зависимые проекты, если вы не можете?

cheers

Ответы [ 3 ]

2 голосов
/ 08 апреля 2011

Как я понимаю из документа, дочерние модули должны указывать свои родительский проект. Это делает их не подходит для повторного использования в качестве зависимостей.

Указание родительского проекта не делает модуль непригодным в качестве зависимости. У большинства модулей есть родительский pom, который определяет общие зависимости / плагины и другие вещи. См., Например, пружинные зависимости.

Можно ли объявить модуль что не указываете его родитель?

Каждый модуль представляет собой индивидуальный проект Maven. Как таковой он не нуждается в родителе. Как правило, в иерархической организации модулей каждый модуль находится в папке, а родительский модуль находится в родительской папке модулей. Родительский pom обычно собирает все модули.

|
--- module 1
    |
    --- pom.xml
|
--- module 2
    |
    --- pom.xml
|
pom.xml <-- parent pom

В отсутствие родительского pom вам нужно будет собрать каждый модуль отдельно.

См. Также это ТАКОЕ обсуждение.

2 голосов
/ 07 апреля 2011

lativePath - это просто подсказка во время сборки. После того, как все ваши модули и родительские модули установлены, вы можете ссылаться на отдельные модули как на зависимости в других ваших проектах.

0 голосов
/ 12 апреля 2011

Родительские poms и pom project полезны, не сомневаюсь.Но документ говорит, что вы должны указать родителя в модуле.Так что, если вы хотите использовать повторно, скажем, серверный модуль проекта для другого проекта, как вы можете это сделать?

|
--- server
     |
     --- pom.xml
|
--- client
     |
     --- pom.xml
|
--- webapp
     |
     --- pom.xml
|
--- Pom project 1
     |
     <modules>
        <module>../server
        <module>../client
|
--- Pom project 2
     |
     <modules>
        <module>../server
        <module>../webapp

В приведенном выше примере, согласно документу, серверный проект должен указывать pomпроект 1 как родительский, а также pom проект 2.

Как вы справляетесь с сочетанием понятия модулей и зависимостей в таком случае?

...