Как указать порядок модулей для Maven? - PullRequest
2 голосов
/ 27 августа 2010

Структура проекта:

/foo
  pom.xml
  /foo-war
    pom.xml
  /foo-ear
    pom.xml

Это мой родитель pom.xml:

.. Foo войны
Foo-уха ..

Это содержание foo-ear/pom.xml:

.. $ {Project.groupId} Foo войны война $ {Project.version} ..

Компиляция завершается с этим сообщением:

...
[INFO] Failed to resolve artifact.
Missing:
—————
1) com.foo:foo-war:war:1.0-SNAPSHOT
Try downloading the file manually from the project website.
...

Похоже, foo-ear пытается разрешить артефакт, когда он еще не готов. Как я могу проинструктировать maven для работы с foo-war заранее? Или я что-то упустил?

пс. Все исправлено, когда я удаляю этот код из родительского pom.xml:

<build>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${javadoc.version}</version>
        <executions>
            <execution>
                <phase>compile</phase>
                <goals>
                   <goal>aggregate</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</build>

Почему?

Ответы [ 3 ]

5 голосов
/ 27 августа 2010

Все исправлено, когда я удаляю этот код из родительского pom.xml (...)

Проблема выглядит аналогично MJAVADOC-161 и более обычно MJAVADOC-137 .Не могли бы вы использовать глючную версию maven-javadoc-plugin, например 2.3 (к сожалению, вы ее не показываете)?Если да, попробуйте версию 2.4 или другую более новую версию.И если вы используете версию выше 2.4, попробуйте с версией 2.4, чтобы увидеть, была ли введена регрессия в какой-то момент.И в этом случае, пожалуйста, откройте новый выпуск.


Я использую версию 2.5.Когда я пытаюсь вернуться к 2.4, я получаю: «агрегат» был указан при выполнении, но не найден в плагине.Похоже, 2,5 мой единственный вариант?Вы думаете, мне нужно подать отчет об ошибке?

Я не обратил внимания на цель, javadoc:aggregate была введена в версии 2.5, поэтому она не будетв 2.4 действительно, и упомянутые выше проблемы не имеют отношения.

Но я взглянул еще раз и увидел некоторые другие, такие как MJAVADOC-275 или MJAVADOC-276 ,Я не уверен, что понимаю точное состояние (и ошибка может быть не исправлена), но перед открытием проблемы обязательно попробуйте версию 2.7 и версию 2.6 (некоторые люди упоминают регрессию, введенную в 2.6.1).

3 голосов
/ 27 августа 2010

Maven автоматически разрешает зависимости между модулями и строит их в правильном порядке. (По крайней мере, если вы используете довольно актуальную версию), но только если вы строите из родительского проекта. (Компонент Maven, отвечающий за это, называется Reactor).

Если это не работает, то, вероятно, модуль не идентичен ссылочной зависимости (например, версии не совпадают).

Пожалуйста, сравните <groupId>, <artifactId>, <version>, <packaging> / <type> из

а) блок зависимости в ухе и

б) заголовок пом войны

1 голос
/ 27 августа 2010

Похоже, что правильно настроены выше.Это не похоже на проблему порядка сборки.

Когда вы запускаете с верхнего уровня, Maven выдаст порядок сборки реактора, например:

[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO]   foo-ear
[INFO]   foo-war

Это выглядит нормально?

Вы также определенно собираете 1.0-SNAPSHOT в своем WAR pom?Что произойдет, если вы перейдете к foo-war и «mvn install», а затем попытаетесь собрать с верхнего уровня?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...