import org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry plugins { id 'java-test-fixtures' id 'refinery-java-conventions' } eclipse.classpath { containsTestFixtures = true file.whenMerged { classpath -> def hasTest = classpath.entries.any { entry -> entry in AbstractClasspathEntry && entry.entryAttributes['gradle_scope'] == 'test' } for (entry in classpath.entries) { // Workaround https://github.com/gradle/gradle/issues/11845 based on // https://discuss.gradle.org/t/gradle-used-by-scope-not-correctly-generated-when-the-java-test-fixtures-plugin-is-used/39935/2 if (entry in AbstractClasspathEntry) { def usedBy = new LinkedHashSet( Arrays.asList((entry.entryAttributes['gradle_used_by_scope'] ?: '').split(',')) ) if (usedBy.contains('main')) { usedBy += 'testFixtures' } if (hasTest && usedBy.contains('testFixtures')) { usedBy += 'test' } if (!usedBy.empty) { entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',') } } } } }