Модуль зависимости Maven не найден - PullRequest
0 голосов
/ 21 мая 2018

У меня довольно простая структура проекта в Maven с подмодулями:

/
-pom.xml
-Utils/
  -pom.xml

В /pom.xml Я определяю свойства для всех подмодулей, таких как версии библиотеки или конфигурации плагинов:

<project>
    <modelVersion>4.0.0</modelVersion>

    <groupId>project</groupId>
    <artifactId>main</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>Utils</module>
    </modules>

    <properties>
        <java.version>10</java.version>
        <vertx.version>3.5.0</vertx.version>
    </properties>
</project>

В /Utils/pom.xml я объявляю подмодуль и его зависимости:

<project>
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>project</groupId>
        <artifactId>main</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <artifactId>Utils</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-core</artifactId>
            <version>${vertx.version}</version>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-unit</artifactId>
            <version>${vertx.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

И я объявляю module-info.java файл:

module util {
    requires vertx.core;
}

Когда я открываюПроект в моей IDE работает как положено, я могу получить доступ к классам из пакета vertx.core в модуле Utils, и все зависимости перечислены там.Однако, когда я пытаюсь скомпилировать с maven, вызывая mvn clean compile, кажется, что зависимости не находятся в пути к классам:

[INFO] Compiling 11 source files to /home/manulaiko/Programming/Java/Kalaazu/Utils/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/manulaiko/Programming/Java/Kalaazu/Utils/src/main/java/module-info.java:[5,19] module not found: vertx.core

Я пытался (без успеха):

  • Установите версии библиотеки непосредственно в узле dependency.
  • Установите узел properties в /Utils/pom.xml.
  • Попробуйте другую версию библиотеки.
  • Проверьте правильность пути к классам с помощью mvn dependency:build-classpath -Dmdep.outputFile=cp.txt и наличие библиотек.
  • Выполните mvn clean compile в /.
  • Выполните mvn clean compile в /Utils.
  • Выполнить mvn -pl Utils clean compile в /
  • Выполнить mvn clean install -U в /.
  • Выполнить mvn clean install -U в /Utils.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Для правильной работы с модулями вам нужна как минимум версия 3.7.0 модуля компилятора Maven.

0 голосов
/ 21 мая 2018

Похоже на проблему с адом.Когда в код добавляются различные версии какого-либо модуля, появляется это сообщение. Проверьте этот пост https://carlosbecker.com/posts/maven-dependency-hell/

...