Работая с модулем JDK9, я использую пакет Apache Http.
Как я могу импортировать эту зависимость Maven "Apache Http" в свой модуль?
В моем файле Maven (с JDK8) у меня есть:
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.4</version>
</dependency>
</dependencies>
Что мне добавить к существующему модулю module-info.java?
module module1 {
// ??? requires org.apache.http;
exports com.hello;
}
Мой исходный файл содержит такой код:
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet request = new HttpGet("http://example.org");
request.addHeader("User-Agent", "Chrome");
Настройки <build> в порядке. Без org.apache.http многомодульное приложение работает нормально.




Предложение @khmarbaise, безусловно, могло бы помочь: проверка файла module-info.java/class. В этом случае не было файлов с информацией о модулях.
В этой ситуации я нашел имена модулей через страница пакета maven, информация о пакете и новости / изменения. Вы можете найти больше информации о названии модуля там. Это похоже на автоматический модуль. Верный?
Другой подход - проверка имен внешних библиотек или файлов jar. Вы должны использовать имя файла JAR без версии. Таким образом, sqlite-jdbc-version.jar можно импортировать через "требует sqlite.jdbc".
Итак, в моем случае мне пришлось добавить:
module module1 {
requires httpclient; // <-- added this line
requires httpcore; // <-- added this line
exports com.hello;
}
Если вам нравится использовать module-info.java, вы должны использовать JDK 9 !! кроме того,
module-info.javaдолжен быть расположен вsrc/main/java.. помимо этого вы должны проверить, содержит ли httpclient файл определения модуля (module-info.class)?