#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:
- https://github.com/gradle/gradle/issues/12354
- https://github.com/eclipse/buildship/issues/1009
- https://github.com/gradle/gradle/issues/14932
Добавление этого кода к 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' }
}