Многопроектные тестовые зависимости Gradle больше не работают в Eclipse для Gradle 6.7

#java #eclipse #gradle

#java #eclipse #gradle

Вопрос:

Допустим, у меня есть 2 проекта Gradle, которые называются «project-base» и «project-extension». Я хочу иметь возможность видеть классы, определенные в src / tests / java «project-base» внутри src / tests / java «project-extension», чтобы иметь возможность использовать общий код между тестированием проектов. Чтобы сделать это, я поместил это в «project-extension»:

 dependencies { testImplementation project(path: ':project-base', configuration: 'testArtifacts')
  

Раньше это работало до Gradle 6.6.1. Но теперь я попытался переключиться на Gradle 6.7, и это не работает в Eclipse. Eclipse сможет перейти к классам в «project-base», но по-прежнему будет отображать их красным цветом и откажется от компиляции, заявив, что не может разрешить зависимости.
Обратите внимание, что этот файл все еще работает в IntellijIDEA, даже для Gradle 6.7, что заставляет меня думать, что это связано с Buildship (плагин Gradle для Eclipse), который не поддерживает эту функцию для Gradle 6.7 правильно.

Есть ли способ заставить это работать для Gradle 6.7 в Eclipse?

Ответ №1:

Эта проблема может быть связана с проблемами Eclipse и Buildship:

Добавление этого кода к build.gradle решаемой проблеме.

 plugins {
  id 'eclipse'
}

eclipse.classpath.file.whenMerged {
  entries.findAll { it instanceof org.gradle.plugins.ide.eclipse.model.ProjectDependency }
    .each { it.entryAttributes['without_test_code'] = 'false' }
}