не удалось выполнить многомодульный проект Maven с использованием exec-maven-plugin - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть многомодульный проект maven здесь .

Родительский проект имеет 3 общих модуля, с-paranamer, без-paranamer.

Модули с-paranamer и без-paranamer независимы друг от друга и зависят от общего модуля.

В модуле без паранамера я добавил зависимость к общему модулю, как this .

Ниже приведена структура проекта.

.
├── pom.xml
├── common
│   ├── pom.xml
│   ├─ src
│      ├── main
│         ├─ java
│            ├── ParanamerUtil.java
│            ├── PersonV03.java
│            └── TestCaseClasses.java
│
├── with-paranamer
│   ├── pom.xml
│   ├──src
│      ├── main
│         ├── java
│            └── ParanamerExample.java
|
└── without-paranamer
    ├── pom.xml
    ├─ src
       ├── main
          ├── java
              └── ParametersExample.java

Я хочу выполнить ParametersExample класс в модуле без paranamer, используя exec-maven-plugin. Поэтому я добавил exec-maven-plugin в pluginManagement в родительском pom.xml здесь .
В модуль без-paranamer я добавил плагин как this .

Я следовал приведенным выше инструкциям, как указано в сообщении stackoverflow здесь .

Когда я запускаю mvn verify, команда выполнена успешно.

Но когда я пытаюсь запустить команду mvn exec:java -Dexec.mainClass=ParametersExample -pl without-paranamer, я получаю ошибку ниже.

WARNING] The POM for paranamer-maven-demo:common:jar:1.0-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.189 s
[INFO] Finished at: 2018-09-07T17:23:07-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project without-paranamer: Could not resolve dependencies for project paranamer-maven-demo:without-paranamer:jar:1.0-SNAPSHOT: Could not find artifact paranamer-maven-demo:common:jar:1.0-SNAPSHOT -> [Help 1]

Как я могу заставить мою программу успешно работать с помощью exec-maven-plugin.

1 Ответ

0 голосов
/ 08 сентября 2018

without-paranamer модуль имеет зависимость от paranamer-maven-demo.common.1.0-SNAPSHOT, но где он может его найти? Самый очевидный ответ: в локальном хранилище. Но его там нет, если только вы его не установите (также вам нужно установить pom родительского проекта).

mvn -N clean install - устанавливает родительский pom. (-N означает non recursive, что означает, что цели будут выполняться только для родительского проекта, а не для дочерних модулей).

mvn -pl common clean install - устанавливает common модуль.

Теперь вызов exec:java будет успешным (но не выводил вывод, из-за <skip>true</skip> в конфигурации управления плагином)

...