假设我有两个Gradle项目,名为"项目基地";以及";项目扩展";。我希望能够看到"的src/tests/java中定义的类;项目基地";在src/tests/java中;项目扩展";,能够在测试项目之间使用通用代码。为了做到这一点,我把这个放在";项目扩展":
dependencies { testImplementation project(path: ':project-base', configuration: 'testArtifacts')
这种情况一直持续到6.6.1级。但现在我尝试切换到Gradle6.7,但它在Eclipse中不起作用。Eclipse将能够导航到";项目基地";但仍将以红色显示它们并拒绝编译,称其无法解决依赖关系。请注意,这个文件在IntelliJIdea中仍然有效,即使对于Gradle6.7也是如此,这让我相信这与Buildship(Eclipse的Gradleplugin(没有正确支持Gradle6.7的这一功能有关。
有没有一种方法仍然可以在Eclipse中为Gradle6.7工作?
此问题可能与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' }
}