В настоящее время я переносю приложение из openJDK 8 в openJDK 9/11.Проект использует Maven 3.5.2 (также пробовал с 3.6).Я использую Ubuntu 18.04 в качестве основной ОС.Моя IDE - IntelliJ IDEA 2018.3.2
После добавления module-info.java
большинство maven-зависимостей работали нормально с
requires ${module.name}
У меня проблемы сasticsearch и wiremock.Требуя их, я получаю «модуль не найден»
В pom.xml
они включают следующее:
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<version>1.58</version>
<exclusions>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</exclusion>
</exclusions>
<classifier>standalone</classifier>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.3.2</version>
</dependency>
Требуя wiremock
в module-info.java
module com.mydomain {
requires guava;
...
...
requires wiremock;
requires elasticsearch;
exports com.mydomain.p1;
exports com.mydomain.p2;
}
При wiremock
версии <version>1.58</version>
в pom.xml во время компиляции я получаю
[WARNING] Can't extract module name from mysql-connector-mxj-5.0.12.jar: TestDb.class found in top-level directory (unnamed package not allowed in module)
[WARNING] Can't extract module name from wiremock-1.58-standalone.jar: Provider class com.fasterxml.jackson.core.JsonFactory not in module
[WARNING] Can't extract module name from ical4j-3.0.1.jar: Provider class moduleName = ical4j-module not in module
[WARNING] Can't extract module name from elasticsearch-1.3.2.jar: Provider class com.fasterxml.jackson.core.JsonFactory not in module
[WARNING] ********************************************************************************************************************
[WARNING] * Required filename-based automodules detected. Please don't publish this project to a public artifact repository! *
[WARNING] ********************************************************************************************************************
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project project: Compilation failure: Compilation failure:
[ERROR] /home/artem/Documents/project/src/main/java/module-info.java:[95,14] module not found: wiremock
[ERROR] /home/artem/Documents/project/src/main/java/module-info.java:[97,14] module not found: elasticsearch
Обновление до новых версий не помогает.Если используется Wiremock с <version>2.1.6</version>
или выше, Intellij говорит module not found
to:
requires commons.lang;
requires json;
И
[ERROR] Failed to execute goal on project project: Could not resolve dependencies for project com.mydomain:project:jar:0.0.1-SNAPSHOT: Failure to find com.github.tomakehurst:wiremock:jar:standalone:2.21.0 in https://repository.mulesoft.org/nexus/content/repositories/public was cached in the local repository, resolution will not be reattempted until the update interval of codehaus-release-repo has elapsed or updates are forced