Ошибка компиляции субпроекта импорта сборки проекта 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}
            }
        }
    }
}
Другие вопросы по тегам