My classpath содержит две разные версии косвенной зависимости, и я не понимаю, почему.Ivy Indirect Dependency Listed Twice
Мой подпроект («myJar») зависит от подпроекта «utils», который зависит от «lib-subprojA». У меня есть код для всех этих проектов, но они являются собственностью, поэтому я не могу публиковать фрагменты.
myProject-myJar -> myProject-utils -> lib-subprojA
Я внесла изменения в lib-subprojA; последняя версия перед изменением была 0.0.100-SNAPSHOT. Версия, содержащая мое изменение, - 0.0.101-SNAPSHOT. Когда я смотрю на путь класса «myProject-myJar», я нахожу «lib-subprojA-0.0.100-SNAPSHOT.jar» (старая версия) и «lib-subprojA-0.0.101-SNAPSHOT.jar» (Последняя версия). Не знаете, почему оба находятся в classpath, но я не могу скомпилировать «myProject-myJar», потому что он использует старую версию «lib-subprojA».
Это происходит в Eclipse (с IvyDE) и sbt (sbt clean update compile
). Я понятия не имею, почему решение среднего проекта («myProject-utils») создает правильную зависимость при разрешении листового проекта («myProject-myJar») содержит две версии одного JAR («lib-subprojA», версии 0.0 .100, 0,0.101).
Это потому, что результаты промежуточного разрешения кэшируются? Если да, как я могу удалить этот кеш?
lib-subprojA // Made change here. Old version: 0.0.100; new: 0.0.101
lib-subprojB
myProject-utils: dependency ... name="lib-subprojA" rev="0.0.+" conf="compile->compile(*),master(*);runtime->runtime(*)"
resolves to: lib-subprojA-0.0.101-SNAPSHOT.jar
myProject-myJar: dependency ... name="myProject-utils" rev="0.0.+" conf="compile->compile(*),master(*);runtime->runtime(*)"
resolves to: lib-subprojA-0.0.100-SNAPSHOT.jar, lib-subprojA-0.0.101-SNAPSHOT.jar
Чтобы очистить кеш, вы можете использовать 'rm -rf ~/.ivy2/cache'. В '~/.ivy2' есть также локальная папка, которую вы также можете попробовать удалить (она хранит библиотеки, которые были опубликованы с использованием' sbt publishLocal'). Там также есть хороший инструмент [здесь] (https://github.com/jrudolph/sbt-dependency-graph) для просмотра графика зависимости вашего проекта, который может помочь его сузить. – Eric
Удаленные кеши от '~/.ivy2'. Проблема остается. Я даже сделал множество сборок 'lib-subprojA' (без изменений кода), надеясь, что версия 0.0.100 будет очищена. У меня теперь есть зависимости от версий 0.0.100 (старые, не хорошие) и 0.0.112 (последние) – radumanolescu