Ломбок на Дженкинс

Я только начал использовать способность Lombok автоматически генерировать геттеры и сеттеры для Java-бинов в моей локальной среде Eclipse, изменив путь к загрузочному классу:

-vmargs -javaagent:lombok.jar -Xbootclasspath/a:lombok.jar

Локально работает, однако, поскольку жизненный цикл нашего приложения влечет за собой сборки Jenkins, я немного подозрительно отношусь к тому, как эти аннотации @Getter и @Setter влияют на код, когда он будет работать в нашей среде CI.

Пока что Lombok касается нашего уровня домена, и поскольку мы используем другие фреймворки, которые зависят от наличия методов получения / установки в модели во время выполнения, чтобы они работали, я бы хотел немного лучше понять, как выполняется модификация байт-кода Lombok, прежде чем я полностью совершить его использование.

Будут ли все методы, автоматически генерируемые этими аннотациями, доступны в Jenkins только благодаря наличию зависимости Lombok в файле pom.xml, или мне дополнительно потребуется изменить весь сценарий запуска Jenkins, как описано выше. Или, может быть, просто нужно изменить работу Дженкинса, чтобы включить поведение модификации байт-кода Lombok?

Если кто-то попробует и преуспеет в объединении Lombok с Jenkins CI, я буду готов услышать их опыт и ассимилировать их в нашем процессе DevOps.

Заранее спасибо.

2 ответа

Решение

Наличие зависимости Lombok в вашем pom-файле ("при ​​условии") должно сделать эту работу. Вы можете проверить это в командной строке на вашем локальном компьютере, используя mvn package, Вам не нужно -vmargs или что-нибудь еще.

Lombok подключается на этапе компиляции и просто генерирует правильные поля, методы и код в файле классов. Все, что работает с файлами классов, даже не должно знать, что оно было сгенерировано Lombok.

Если по какой-либо причине вам необходимо обработать исходные файлы, содержащие сгенерированный код, вы также можете сначала запустить delombok с помощью плагина Lombok Maven.

В моей компании мы успешно используем Jenkins и Lombok.

Раскрытие информации: я разработчик Lombok.

Благодарю. Проблема решена сейчас. Основной причиной было то, что я добавил зависимость не в том месте.

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