Как я могу контролировать зависимости файлов IntelliJ Scratch? - PullRequest
0 голосов
/ 04 июля 2018

У меня есть рабочий файл, использующий коллекции гуавы, и я получаю некоторые странные ошибки, которые я должен допустить из-за редактора и фактической среды выполнения, предполагающей разные версии коллекций гуавы:

Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.collect.Range.<init>(Lcom/google/common/collect/Cut;Lcom/google/common/collect/Cut;)V from class 
com.google.common.collect.Ranges
    at com.google.common.collect.Ranges.create(Ranges.java:80)
    at com.google.common.collect.Ranges.closedOpen(Ranges.java:114)
    at Scratch.main(scratch_2.java:69)

Не то, чтобы я действительно мог это знать наверняка, потому что я также не могу понять, как я должен видеть, какую версию загружает скретч-файл. Я удалил guava из deps моего проекта ПОЛНОСТЬЮ и скретч-файл все еще работает ... ПОЧЕМУ? Откуда берется библиотека ??? Конфигурация запуска с нуля полностью пуста от всего, что может диктовать это:

scratch run config

И все же он все еще работает просто отлично. Я обнаружил, что если я удалю записи гуавы из моего локального кэша плюща, он больше не будет работать. Если я затем добавлю гуаву обратно в deps моего проекта, она снова попадет в мой кэш плюща, и даже если я удаляю гуаву из deps проекта, файл скретча снова в порядке. Так что же, скретч файл выбирает случайную версию или что-то в этом роде? Кэш плюща, который находится на ~/.ivy2/cache/com.google.guava, выглядит так:

ivy cache

Но есть также папка "jars", которая по какой-то причине имеет guava-12.0:

other folder in ivy cache

И снова, я понятия не имею, какая версия используется или почему в кеше так много разных версий. Есть идеи?

1 Ответ

0 голосов
/ 11 июля 2019

У меня была похожая проблема в PyCharm, которую я только что исправил - поэтому ваш пробег может варьироваться здесь. В нем говорится, что к окну проекта по умолчанию была прикреплена виртуальная среда Python (в одном окне у меня было открыто несколько проектов - но, очевидно, первый стал по умолчанию).

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

Я установил этот флажок для virtualenv, в котором были библиотеки, которые я искал, и это исправило ошибки компиляции в самом редакторе.

enter image description here

...