Модуль JDK9 - maven - как импортировать, например. org.apache.http пакет?

Работая с модулем 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 многомодульное приложение работает нормально.

Если вам нравится использовать module-info.java, вы должны использовать JDK 9 !! кроме того, module-info.java должен быть расположен в src/main/java .. помимо этого вы должны проверить, содержит ли httpclient файл определения модуля (module-info.class)?

khmarbaise 12.10.2018 21:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
345
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предложение @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;
}

Другие вопросы по теме