[Idea] Подключить либу

yroslavasako

Как объяснить идее что lib_managed лежат либы в виде jar файлов и их было бы неплохо учитывать при автодополнении и подсветке синтаксиса?
Community EAP 10.

katrin2201

Не очень понятна проблема. В идее есть стандартное для подключения либ. Чем оно не устраивает?

yroslavasako

там можно папку рекурсивно подключить?
upd: И заставить идею регулярно пересканировать эту папку на предмет наличия новых либ. В общем, чтобы это было похоже на source и test раскраску папок - только вариант dependancy lib.

ifani

Насчёт рекурсии не проверял - за столько лет разработки на Java ни разу такое не потребовалось :)
А вот пересканирование IDEA, вроде, не делает - этого иногда не хватает, да.
Как вариант, если уже есть код и есть папка, где лежат нужные либы, то можно поставить плагин Class Hunter. Настроить его, чтобы он смотрел на эту папку, а затем на любом классе, либа которого есть в той папке, но ещё не подключена к проекту, кликаешь правой кнопкой и в контекстном меню выбирашь что-то типа "Find Class" - он найдёт нужный джарник и добавит в класспас.

yroslavasako

дык в идеале мне вообще в ту папку лезть не нужно. Максимум что на import someclass какую-нибудь кнопочку нажать, чтобы этот класс был найден.
А папки такие появляются в результате действий автоматических тулзов для сборки. Они сами необходимые либы по зависимостям вытаскивают/билдят. Так что по идее достаточно указать один раз в настройках сборщика все депенды. Понятное дело, компилю я тоже им, из консоли. Но нормальную подсветку синтаксиса всё же хотелось бы получить и в IDE.
За class hunter спасибо - всё лучше чем ничего

katrin2201

Автоматические тулзы сборки, сами подгружающие либы, обычно понимаются идеей напрямую, как например мавен в моем первом скриншоте. То есть ты просто говоришь, вот тут конфиг проекта - импортируй его. Дальше все либы, сорцы, и пр подсасываются автоматом.
Рекурсивно пройтись по дереву папок и добавить все джарники в класспас идея не умеет, но добавить просто все джарники в указанной папке нерекурсивно, с регулярным пересканом (на каждом synchronize). Если папок конечное число - то вполне рабочее решение.

yroslavasako

Автоматические тулзы сборки, сами подгружающие либы, обычно понимаются идеей напрямую,
только в случае наличия соответствующего плагина

yroslavasako

Если папок конечное число - то вполне рабочее решение.
согласен. Только из картинок не смог вычислить последовательность действий. Можешь описать словами?

katrin2201

yup
Project Structure -> Modules -> Dependencies -> Add... -> Project Library -> Create Library
в созданную library сделать Attach Jar Directories...

yroslavasako

во, запахало.
А с плагинами для sbt просто беда. Идейный плагин октровенно жалок и ничего не умеет, кроме вызова sbt compile и sbt console (в том числе не умеет конфигурировать проект)
Плагин для самого sbt генерит при sbt update конфиг для идеи, но во-первых, для другой версии, во-вторых плагин сам преальфа, в-третьих он тоже много чего не умеет делать.
Так и вышло что ручками проект добавить самое надёжное.

katrin2201

оу, скала, ясн. хорошо что хоть как-то заработало

yroslavasako

ну sbt - это не scala build tool, а simple build tool, оно и яву умеет (в основном потому что скала хорошо с явой перемешивается).
А так если бы не скала, то я бы до использования идеи никогда и не дошёл. Для скалы есть ещё оффплагин для эклипса, но он альфа (и иногда странно глючит) и делает полный разбор, отчего часто сильно тормозит. Идейный плагин проверяет только синтаксис, не семантику, потому пашет в разы быстрее.

katrin2201

ну в общем да, скала не самая сильная сторона идеи. груви там еще боле-мене нормально поддерживается, а со скалой просос... жалко, что эклипс тоже не смог.

yroslavasako

да не нормально всё. На разных ютубных роликах видно что по большей части на скале программируют так: есть редактор (vim чаще других туда набивают код. А для всего что касается работы с проектом есть консоль для sbt и git.

katrin2201

Фиг знает. Я, видимо, слишком сильно в свое время привык к хорошему. Последние полгода приходится программировать в блокноте на beanshell'е, и вот первые пару месяцев дались мне не просто =)
Кстати, что забавно, заметил, что даже в блокноте проще прогать через простые рефакторинги. Избавляет от необходимости удерживать в голове полную картинку связей.
Но это пока у меня там меньше 100кб кода, написанного исключительно мною, я справляюсь в блокноте руками, головой и ручкой. А как это делать в более-менее развившемся проекте без поддержки среды - непонятно. То есть понятно, конечно, полнотекстовый поиск - наше все, но это же на порядок больше работы...
Оставить комментарий
Имя или ник:
Комментарий: