Maven: сбой модуля компиляции - PullRequest
0 голосов
/ 28 августа 2018

У меня есть эти модули в моем pom.xml:

<modules>
    <module>rep-digital-common</module>
    <module>rep-digital-api</module>
</modules>

Итак, rep-digital-common содержит общие классы rep-digital-api потребности модуля.

Когда я компилирую их, используя

$ mvn clean compile
...
[INFO] rep-digital-common ................................. SUCCESS [  7.571 s]
[INFO] rep-digital-api .................................... SUCCESS [ 17.988 s]

Однако, когда я выполняю:

$ mvn -pl rep-digital-api clean package

не удается:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.345 s
[INFO] Finished at: 2018-08-28T12:29:19+02:00
[INFO] Final Memory: 58M/140M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project rep-digital-api: Compilation failure: Compilation failure: 
[ERROR] /home/jcabre/projectes/repo-digital/rep-digital-api/src/main/java/net/gencat/transversal/repositori/digital/document/service/DocumentService.java:[29,65] cannot find symbol
[ERROR]   symbol:   class ContentStatus
Символ

ContentStatus расположен на rep-digital-common. Я не совсем понимаю, что происходит не так.

Очевидно, rep-digital-common добавляется как rep-digital-api зависимость:

<dependency>
    <groupId>net.gencat.transversal.repositori.digital</groupId>
    <artifactId>rep-digital-common</artifactId>
</dependency>

Есть идеи?

1 Ответ

0 голосов
/ 28 августа 2018

Выполнение mvn clean compile или mvn clean package не добавляет встроенные артефакты в локальный репозиторий.
Чтобы добавить встроенные артефакты в локальный репозиторий, вы должны использовать mvn clean install.

Обратите внимание, что на самом деле вы строите проект реактора, он работает, потому что реактор предоставляет зависимости, необходимые для построения каждого текущего модуля.

С другой стороны, когда вы компилируете только rep-digital-api, реактор вам не поможет:

 mvn -pl rep-digital-api clean package

и поэтому компиляция может завершиться неудачей, так как классы rep-digital-common не разрешимы.

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