@ Slf4j не может найти символ LOG

Мне известно, что опубликовано несколько вопросов по одним и тем же ошибкам. Однако я не думаю, что это те же проблемы, что и у меня.

Короче говоря, я пытаюсь скомпилировать один из примеров, поставляемых с файлом oci-java-sdk. Он не компилируется. Кажется, что в jar-файле или около того есть переменная LOG, поэтому мне интересно, где я могу найти файл jar.

Вот подробности. Во-первых, я использую Oracle Linux и установил oci-java-sdk с RPM. После этого я скопировал весь каталог примеров в свой домашний каталог. Вот как выглядит мой КЛАСС:

$ echo $CLASSPATH
:/usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-1.6.1.jar:/usr/lib64/java-oci-sdk/third-party/lib/*

Для нужд моей работы я пытаюсь построить следующий пример:

$ javac -Xlint -cp $CLASSPATH:$PWD/lombok.jar:/usr/share/java/*:/usr/share/java/slf4j/* ./EventsServiceExample.java

Как показано выше, я скачал lombok.jar с веб-сайта проекта lombok. Команда javac не работает следующим образом:

$ javac -Xlint -cp $CLASSPATH:$PWD/lombok.jar:/usr/share/java/*:/usr/share/java/slf4j/* ./EventsServiceExample.java 
./EventsServiceExample.java:83: error: cannot find symbol
        LOG.info("Number of rules in compartment {} is {}", compartmentId, rulesList.size());
        ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:135: error: cannot find symbol
            LOG.info(
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:143: error: cannot find symbol
            LOG.error(
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:164: error: cannot find symbol
            LOG.error("Failed to retrieve the Rule {}", ruleId, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:188: error: cannot find symbol
            LOG.info("Rule {} was updated", ruleId);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:192: error: cannot find symbol
            LOG.error("Failed to update rule {} with displayName {}", ruleId, newDisplayName, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:217: error: cannot find symbol
            LOG.error("Failed to list rules in compartment {}", compartmentId, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:232: error: cannot find symbol
            LOG.info("Rule {} was deleted", ruleId);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
./EventsServiceExample.java:234: error: cannot find symbol
            LOG.error("Failed to delete rule {}", ruleId, e);
            ^
  symbol:   variable LOG
  location: class EventsServiceExample
9 errors

Это заставляет меня думать, что он не может найти LOG, который должен быть где-то связан с slf4j. Я установил все RPM, похожие на slf4j, но мне все равно не повезло.

Следующая ссылка является примером того, как другие жалуются на одно и то же сообщение об ошибке: intellij -14-lombok-slf4j-cannot-find-symbol-log

Я нашел еще подобное. В основном кажется, что в каждой IDE есть какая-то библиотека, а библиотека и ломбок должны быть хорошо настроены с IDE.

Я не должен использовать IDE. Я должен скомпилировать исходный код из командной строки. Таким образом, я предполагаю, что мне нужно найти, где находится восходящий поток файла jar, который имеет переменную LOG. После этого, надеюсь, я хотел бы найти RPM, у которого есть банка, если таковая имеется.


person Stephen    schedule 31.08.2019    source источник


Ответы (2)


Аннотации @Slf4j Lombok и Groovy добавляют члена с именем log, а не LOG.

person chrylis -cautiouslyoptimistic-    schedule 01.09.2019

Хотя оно не установлено по умолчанию, имя поля можно переопределить, настроив lombok.log.fieldName как LOG при построении образца.

В примерах используется следующий файл lombok.config с OCI Java SDK: https://github.com/oracle/oci-java-sdk/blob/master/lombok.config

person Andy    schedule 03.09.2019