Дубликаты модов-зависимостей в многомодульном проекте

Версия Minecraft
1.12.2
API
Forge
178
4
42
Граждане! Появилась проблема. У меня есть modA и modB(modA в зависимостях у modB). Я добавляю к modA в зависимость сторонний мод, и при попытке запустить modB через GradleStart из идеи лезет такое:
Java:
java.lang.IllegalArgumentException: Multiple entries with same key: other=FMLMod:other{1.0} and other=FMLMod:other{1.0}. To index multiple values under a key, use Multimaps.index.
    at com.google.common.collect.Maps.uniqueIndex(Maps.java:1385)
    at com.google.common.collect.Maps.uniqueIndex(Maps.java:1341)
    at net.minecraftforge.fml.common.Loader.identifyMods(Loader.java:427)
    at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:566)
    at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:232)
    at net.minecraft.client.Minecraft.init(Minecraft.java:513)
    at net.minecraft.client.Minecraft.run(Minecraft.java:421)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    at GradleStart.main(GradleStart.java:25)
Судя по всему, IDEA пробросила зависимость из modA в modB(что, собственно, само по себе довольно полезно). Однако при этом, так как она запускает modB и modA, запускается две!! одинаковые версии зависимости. Можно как-то (возможно, через gradle) сказать, чтобы не подсасывал её при запуске? Через билд очевидно как делать, а вот как в окружении? Не собирать же каждый раз...

Зависимость указана так:
Gradle (Groovy):
dependencies {
    compile fileTree(dir: '../libs', include: '*.jar') // тут пробовал делать implementation, но он всего-то не пробрасывает зависимость дальше через иерархию модулей. После прописания в обоих проблема остаётся.
}
В директории джарник ровно один, дубликатов нет :)
 
Последнее редактирование:
Решение
Добавь жарки через flat repo, укажи, чтобы у одной из них не тянулись зависимости транзитивно
Java:
repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile ("kokoko:modA:version"){
        transitive = true;
    }
    compile ("kokoko:modB:version")
}
В плоском репозитории, насколько я понял. groupId может быть любым, поэтому kokoko
7,099
324
1,510
Добавь жарки через flat repo, укажи, чтобы у одной из них не тянулись зависимости транзитивно
Java:
repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile ("kokoko:modA:version"){
        transitive = true;
    }
    compile ("kokoko:modB:version")
}
В плоском репозитории, насколько я понял. groupId может быть любым, поэтому kokoko
 
Сверху