Netbeans + модули Java 9 + Log4j 2.11 = модуль не найден - PullRequest
0 голосов
/ 28 мая 2018

Я использую Apache Netbeans 9 Beta 9 (22 февраля 2018 г.).У меня есть приложение Java 9 Module.И я хочу интегрировать Log4j 2 в свое приложение.Вот мой modile-info.java.

module ru.itlect.remka.agent {

    exports ru.itlect.remka.agent;

    requires ru.itlect.remka.commons;
    requires org.apache.logging.log4j.core;
    requires org.apache.logging.log4j;

    requires static spring.context;
    requires java.logging;
    requires java.xml;
    requires java.sql;
    requires java.desktop;
    requires java.naming;
    requires java.rmi;

    requires static javafx.graphics;
    requires static javafx.controls;
}

Netbeans говорит, что org.apache.logging.log4j модуль не найден. Хотя org.apache.logging.log4j.core в порядке.Когда я строю проект, он строится успешно.Так что проблема в самом Netbeans.java --list-modules говорит, что org.apache.logging.log4j находится в log4j-api-2.11.0.jar.Если я наберу requeres log Netbeans предложит log4j.api, что автоматическое имя модуля для log4j-api-2.11.0.jar.Мысль Netbeans говорит, что log4j.api также не найден.

Я могу жить с постоянным сообщением об ошибке в module-info.java, но Netbeans не может видеть ни одного класса в log4j-api-2.11.0.jar, поэтому у меня есть ошибки в любом классекоторый использует регистраторы. Как заставить Netbeans видеть модуль?

Это часть моего pom.xml:

<dependencies>

    <!-- Ремка -->
    <dependency>
        <groupId>ru.itlect.remka</groupId>
        <artifactId>commons</artifactId>
        <version>1.0.0</version>
    </dependency>

    <!--Spring-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.0.6.RELEASE</version>
    </dependency>

    <!-- Аннотации -->
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.5</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Logs -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.0</version>
    </dependency>
</dependencies>

1 Ответ

0 голосов
/ 04 октября 2018

У меня тоже были проблемы с обновлением некоторых приложений для использования Log4j2 V2.11.1 в качестве модуля.Я создал простой тестовый пример и поднял его в списке рассылки пользователей Netbeans.

Начиная с сегодняшнего дня, в последнем выпуске Netbeans 9 была обнаружена и исправлена ​​ошибка. Запрос на извлечение 941 , который Гиртджан утвердил сегодня утром, объясняет.Список рассылки (users@netbeans.incubator.apache.org) содержит предложения по решению проблемы до того, как исправление будет включено в новый выпуск.Новая версия вступает в процесс NetCAT (Community Acceptance Testing) .Разработчики были бы признательны сообществу за помощь, чтобы завершить его быстрее, что, вероятно, является лучшим способом продвижения вперед.

Если вам нужно немедленное решение, один из предложенных подходов в обсуждении - отредактировать файл jar, чтобы переместить файл module-info.class в корневую структуру.

...