diff options
Diffstat (limited to 'buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle')
-rw-r--r-- | buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle b/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle new file mode 100644 index 00000000..326fa868 --- /dev/null +++ b/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle | |||
@@ -0,0 +1,31 @@ | |||
1 | plugins { | ||
2 | id 'java-test-fixtures' | ||
3 | id 'refinery-java-conventions' | ||
4 | } | ||
5 | |||
6 | eclipse.classpath { | ||
7 | containsTestFixtures = true | ||
8 | |||
9 | file.whenMerged { classpath -> | ||
10 | def hasTest = classpath.entries.any { entry -> | ||
11 | entry in org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry && | ||
12 | entry.entryAttributes['gradle_scope'] == 'test' | ||
13 | } | ||
14 | for (entry in classpath.entries) { | ||
15 | // Workaround https://github.com/gradle/gradle/issues/11845 based on | ||
16 | // https://discuss.gradle.org/t/gradle-used-by-scope-not-correctly-generated-when-the-java-test-fixtures-plugin-is-used/39935/2 | ||
17 | if (entry in org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry) { | ||
18 | def usedBy = new LinkedHashSet( | ||
19 | Arrays.asList((entry.entryAttributes['gradle_used_by_scope'] ?: '').split(',')) | ||
20 | ) | ||
21 | if (usedBy.contains('main')) { | ||
22 | usedBy += 'testFixtures' | ||
23 | } | ||
24 | if (hasTest && usedBy.contains('testFixtures')) { | ||
25 | usedBy += 'test' | ||
26 | } | ||
27 | entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',') | ||
28 | } | ||
29 | } | ||
30 | } | ||
31 | } | ||