Maven, похоже, знает о utilities-20190520.jar и вносит его в сборку, однако при компилировании потребления кода пакеты и символы utility-20190520.jar не может быть найден.Обратите внимание, что многие другие сторонние JAR (например, org.apache.common-io , NiFi JAR и т. Д.) Получаются Maven и код использует их без ошибок.
Iиметь несколько модулей:
. pipeline (parent)
+-- shared
`-- other modules
Родитель (или супер) pom.xml определяет эту зависимость для использования всеми подмодулями:
<dependency>
<groupId>com.acme</groupId>
<artifactId>utilities</artifactId>
<version>20190520</version>
</dependency>
Выполнение mvn dependency:tree compile
(в родительском подкаталоге) Я вижу
...
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ pipeline ---
[INFO] com.acme.nifi.pipeline:pipeline:pom:2.0.0
[INFO] +- com.acme:utilities:jar:20190520:compile (my JAR)
[INFO] +- org.apache.nifi:nifi-api:jar:1.9.2:compile (NiFi JAR)
...
- кажется, что utilities.jar получен из локального репозитория, затем он переходит к компиляции первого (под) модуля:
[INFO] com.acme.nifi.pipeline:shared:jar:2.0.0
...
[INFO] +- com.acme:utilities:jar:20190520:compile (my JAR again)
...
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/russ/sandboxes/pipeline/shared/src/main/java/com/acme/DeferringXmlParsingFilter.java:[10,33] package com.acme.xml does not exist
...
[ERROR] /home/russ/sandboxes/pipeline/shared/src/main/java/com/acme/nifi/processor/DeferringXmlParsingFilter.java:[61,70] cannot find symbol
symbol: class Tag
location: class com.acme.nifi.processor.DeferringXmlParsingFilter
Компилятор жалуется, что не знает пакета com.acme.xml или com.acme.xml.Tag , класса в этом пакете- несмотря на то, что, по всей видимости, utilities-20190520.jar , содержащий их, присутствует.
Я отношусь к utilities-20190520.jar как и любой другой JAR,он находится в ~ / .m2 / хранилище , у меня есть спецификация <repository>
для него, settings.xml настроен правильно - действительно, многоприходят ее JAR. Вот мой JAR в локальном хранилище:
~/.m2/repository
+-- com
+-- acme
+-- utilities
+-- 20190520
+-- utilities-20190520.jar
+-- utilities-20190520.pom
+-- etc.
Мысли?