#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»