Как увидеть классы, сгенерированные lombok, в приложении Maven Spring Boot

Я пытаюсь использовать lombok в своем приложении, основанном на конфигурации Spring boot и maven.

Я добавил зависимость:

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.16</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

в моем pom.xml. Кроме того, поскольку я использую STS, я установил Lombok в свои sts, запустив jar. Я могу использовать аннотации Lombok и использовать геттеры, сеттеры и т. Д., Но я не могу видеть свои сгенерированные классы / методы в папке target/generated-sources.

Есть ли какая-то конкретная причина, по которой я не могу видеть эти сгенерированные классы и как STS или maven могут использовать эти сгенерированные классы / методы?

Кто-нибудь может помочь мне понять? И если возможно, как просмотреть эти сгенерированные классы / методы?

Примечание. Моя папка с исходным кодом по-прежнему src/main/java.


person happytohelp    schedule 10.12.2020    source источник


Ответы (2)


Скомпилированные файлы классов вашего проекта находятся в папке target / classes. Эта папка не отображается в представлении по умолчанию, т. Е. В представлении Проводник пакетов. Чтобы просмотреть содержимое целевой папки, необходимо включить представление Навигатор (теперь не рекомендуется) в Окно - ›Показать представление. После этого ваши скомпилированные классы будут видны в папке target / classes в соответствии со структурой пакета вашего проекта.

person dope    schedule 10.12.2020
comment
так что класс, созданный lombok, также будет доступен в папке target / classes, верно? - person happytohelp; 11.12.2020
comment
да. И вы можете использовать плагин декомпилятора, чтобы увидеть сгенерированные методы получения и установки для полей вашего класса. - person dope; 11.12.2020

Lombok не работает, выводя исходный код в target/generated-sources; этот метод позволяет только добавлять новые исходные файлы, но не изменять компилируемые классы. Lombok вместо этого работает, взламывая внутреннее устройство компилятора и вмешиваясь в сам процесс компиляции.

person chrylis -cautiouslyoptimistic-    schedule 10.12.2020
comment
Понял. Спасибо - person happytohelp; 11.12.2020
comment
Тоже не связано, но безопасно ли использовать методы хэш-кода, сгенерированные ломбоком? - person happytohelp; 11.12.2020
comment
@happytohelp Что вы имеете в виду под словом «сейф»? Их используют основные фреймворки, используемые разработчиками во всем мире, поэтому у меня нет никаких сомнений в этом. - person chrylis -cautiouslyoptimistic-; 11.12.2020