Путаница в зависимости от Android Studio — Lombok

#gradle #dependencies #android-gradle-plugin #lombok

#gradle #зависимости #android-gradle-плагин #ломбок

Вопрос:

Я пытался интегрировать библиотеку Lombok в модуль, отличный от Android, в Android Studio.

Сначала это то, что я добавил в зависимости build.gradle:

 compile group: 'org.projectlombok', name: 'lombok-maven', version: '1.16.10.0'
  

Это тот же синтаксис, который я всегда использую для всего остального (spring и т. Д.), И он работает просто отлично.

Все скомпилировано нормально, но файл Lombok просто не был извлечен, что бы я ни делал (очистка / перестройка / перезапуск IDE и т. Д.).

В конце концов я изменил строку зависимостей на:

 compile 'org.projectlombok:lombok:1.12.6' 
  

и затем, наконец, jar был извлечен правильно.

Я действительно не понимаю, что здесь происходит. Первая строка зависимостей — это то, что я получил из официального репозитория maven. Вторая строка, на которую я случайно наткнулся в Интернете.

Попытка использовать 2-ю строку с новейшей версией (1.16.10.0) завершается неудачной компиляцией, указывая, что такой jar не существует.

Я уверен, что мне не хватает некоторых фундаментальных принципов здесь с gradle или чем-то еще. Я был бы признателен, если бы кто-нибудь мог пролить некоторый свет на вещи, поскольку я потратил много времени и усилий на эту глупую проблему.

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

Комментарии:

1. Какие репозитории определены в скрипте?

2. Если я правильно понимаю, я думаю, что эти: buildscript { repositories { jcenter() maven { url 'https://maven.fabric.io/public' } maven { url "https://plugins.gradle.org/m2/" } }

Ответ №1:

Я думаю, вы просто неправильно указали версию — последняя версия 1.6.10, а не 1.6.10.0.

Так compile 'org.projectlombok:lombok:1.16.10' будет работать.

Комментарии:

1. Вы правы насчет версии, спасибо. Это сработало, но это не то, что меня действительно беспокоит. Меня больше беспокоит синтаксис «компиляция» и «группа компиляции». Последнее, которое не работает, — это то, что я получаю с официального сайта репозитория maven. Всякий раз, когда мне нужна зависимость, я всегда иду туда и просто копирую и вставляю ее в свой build.gradle и получаю библиотеку. Я пытаюсь понять, почему на этот раз это не работает, и работает только синтаксис «компиляции». А ты как думаешь? Спасибо!

2. Хм, в Maven есть два артефакта: «lombok-maven» и «lombok». Я считаю, что «lombok» — это то, что вам нужно, поскольку в «lombok-maven» нет файлов для загрузки.

3. Я понимаю. Это так странно. Обычно я ищу из того же архива (официальный репозиторий maven) и добавляю то, что нахожу оттуда. Мне все это кажется очень странным. В любом случае спасибо за помощь Алексию, я очень ценю это!

Ответ №2:

Я наконец понял свое замешательство. Я не заметил, что пытался добавить ПЛАГИН lombok, а не сам проект lombok.

В мою защиту, это довольно запутанно (особенно при поиске в 2 часа ночи ;)). Это то, что я должен был использовать: репозиторий Maven — исправить зависимость от lombok

Это то, что я ошибочно пытался использовать:

Репозиторий Maven — плагин Lombok

На самом деле это первое, что появляется при поиске «Maven Lombok» в Google.

Комментарии:

1. Вы знаете, что можете использовать search.maven.org для поиска? Например, это результат поиска для ‘lombok’ — search.maven.org/#search|ga|1|g:»org.projectlombok»