Модули сборки Maven вышли из строя

Я пытаюсь создать проект maven, в котором есть несколько модулей. Поэтому я ожидаю, что они будут построены в порядке, указанном в pom.xml, но видно, что порядок модулей в сборке не совпадает с порядком, указанным в файле pom.xml. В чем может быть причина?

Моя версия Maven: Apache Maven 3.0.4


person Malintha    schedule 08.08.2013    source источник


Ответы (2)


Maven определяет порядок на основе зависимостей. Итак, если у вас есть 3 подмодуля: A, B и C, вам нужно войти в каждый подмодуль и сделать зависимость явной. Например, если вы перейдете к pom.xml B и объявите, что он зависит от A и C, maven построит A и C в некотором случайном порядке, а в конце построит B.

person Augusto    schedule 08.08.2013

Порядок, который вы указали в родительском файле pom, также актуален в случае, когда между модулями нет сбоя зависимостей, это означает, что если какой-либо модуль присутствует выше в списке, и это зависит от модуля, который находится ниже него, то в этом случае порядок упомянутые в файле POM не будут использоваться, Maven будет использовать свой мозг и сначала построит все модули, которые потребуются для сборки некоторыми другими модулями.

Подробнее о порядке сборки см. В этом вопросе и Maven Spec там же.

Из спецификаций:

Reactor Sorting

Because modules within a multi-module build can depend on each other, 
it is important that The reactor sorts all the projects in a way that 
guarantees any project is built before it is required.

The following relationships are honoured when sorting projects:

    1. project dependency on another module in the build
    2. plugin declaration where the plugin is another modules in the build
    3. plugin dependency on another module in the build
    4. build extension declaration on another module in the build
    5. the order declared in the modules element (if no other rule applies)

Note that only "instantiated" references are used - dependencyManagement 
and pluginManagement elements will not cause a change to the reactor 
sort order.
person saurav    schedule 08.08.2013