Ошибка компиляции субпроекта импорта сборки проекта Eclipse Gradle
У меня есть проект xxxWeb
используя проект xxxAPI
, Оба проекта являются подпроектом родительского проекта. проект xxxAPI
использует стороннюю библиотеку jar jar1.jar
, который имеет класс somepackage.ClassA
, Сам проект xxxAPI также имеет идентичные somepackage.ClassA
этот проект xxxWeb
намерен использовать.
Тем не менее, затмение нагрузки somepackage.ClassA
от jar1.jar
вместо этого, приводя к ошибке компиляции, потому что jar1/somepackage/ClassA
не имеет необходимых полей, как в xxxAPI/somepackage/ClassA
,
В пути к классам проекта xxxWeb Eclipse помещает проект xxxAPI до самого конца, что, вероятно, и выбирает компилятор jar1/somepackage/ClassA
вместо xxxAPI/somepackage/ClassA
,
Однако в IntelliJ это не проблема.
Есть ли лекарство от этого?
Скрипт сборки работает нормально, поэтому я задаю вопрос о подключаемом модуле Eclipse от Gradle, и как манипулировать сгенерированным classpath?
1 ответ
Это ошибка Gradle, начиная с версии 2.14.1. Обходной путь должен использовать ловушку, предоставленную плагином Eclipse Gradle, для удаления дублированных записей пути к классам.
eclipse {
classpath {
file {
whenMerged { cp ->
cp.entries = cp.entries.unique{a,b -> a.path <=> b.path}
}
}
}
}