From af0ac22364d2621f580eef10df4172240ab382f2 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sat, 31 Jul 2021 17:28:31 +0200 Subject: Refactor Gradle configs --- gradle/java-common.gradle | 25 ------------------------- gradle/jmh.gradle | 28 +++++++++++++++++----------- gradle/junit.gradle | 16 ++++++++++++++++ gradle/xtend.gradle | 15 +++++++++++++++ 4 files changed, 48 insertions(+), 36 deletions(-) create mode 100644 gradle/junit.gradle create mode 100644 gradle/xtend.gradle (limited to 'gradle') diff --git a/gradle/java-common.gradle b/gradle/java-common.gradle index caae7d78..8f37e475 100644 --- a/gradle/java-common.gradle +++ b/gradle/java-common.gradle @@ -3,20 +3,10 @@ repositories { } apply plugin: 'java' -apply plugin: 'org.xtext.xtend' sourceCompatibility = '11' targetCompatibility = '11' -sourceSets { - main { - xtendOutputDir = 'src/main/xtend-gen' - } - test { - xtendOutputDir = 'src/test/xtend-gen' - } -} - configurations.all { exclude group: 'asm' } @@ -27,21 +17,6 @@ jar { } } -test { - useJUnitPlatform { - excludeTags 'slow' - } -} - -task slowTest(type: Test) { - useJUnitPlatform() -} - -clean.doLast { - delete 'src/main/xtend-gen' - delete 'src/test/xtend-gen' -} - apply plugin: 'eclipse' eclipse { diff --git a/gradle/jmh.gradle b/gradle/jmh.gradle index ea88f3e3..9d4d8329 100644 --- a/gradle/jmh.gradle +++ b/gradle/jmh.gradle @@ -10,31 +10,37 @@ sourceSets { resources.srcDirs = ['src/jmh/resources'] compileClasspath += sourceSets.main.runtimeClasspath compileClasspath += sourceSets.test.runtimeClasspath - xtendOutputDir = 'src/jmh/xtend-gen' } } dependencies { - jmhRuntime "org.openjdk.jmh:jmh-core:${jmhVersion}" - jmhCompile "org.openjdk.jmh:jmh-generator-annprocess:${jmhVersion}" + jmhCompile "org.openjdk.jmh:jmh-core:${jmhVersion}" jmhAnnotationProcessor "org.openjdk.jmh:jmh-generator-annprocess:${jmhVersion}" } -clean.doLast { - delete 'src/jmh/xtend-gen' -} - task jmh(type: JavaExec, dependsOn: jmhClasses) { main = 'org.openjdk.jmh.Main' classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath } eclipse.classpath { - plusConfigurations += [configurations.jmh] + plusConfigurations += [configurations.jmhCompile, configurations.jmhRuntime] - // Allow test helper classes to be used in benchmarks from Eclipse. file.whenMerged { classpath -> - def jmhClasspathEntry = classpath.entries.find { entry -> entry.path == 'src/jmh/java' } - jmhClasspathEntry.entryAttributes['test'] = true + for (entry in classpath.entries) { + // Workaround from https://github.com/gradle/gradle/issues/4802#issuecomment-407902081 + if (entry in org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry) { + def usedBy = (entry.entryAttributes['gradle_used_by_scope'] ?: '').split(',') + if (usedBy == ['jmh']) { + // Allow test helper classes to be used in benchmarks from Eclipse + // and do not expose JMH dependencies to the main source code. + entry.entryAttributes['test'] = true + } else if ((usedBy.contains('main') || usedBy.contains('test')) && !usedBy.contains('jmh')) { + // main and test sources are also used by jmh sources. + usedBy += 'jmh' + entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',') + } + } + } } } diff --git a/gradle/junit.gradle b/gradle/junit.gradle new file mode 100644 index 00000000..b36b30b4 --- /dev/null +++ b/gradle/junit.gradle @@ -0,0 +1,16 @@ +dependencies { + testCompile "org.junit.jupiter:junit-jupiter-api:${junitVersion}" + testRuntime "org.junit.jupiter:junit-jupiter-engine:${junitVersion}" + testCompile "org.junit.jupiter:junit-jupiter-params:${junitVersion}" + testCompile "org.hamcrest:hamcrest:${hamcrestVersion}" +} + +test { + useJUnitPlatform { + excludeTags 'slow' + } +} + +task slowTest(type: Test) { + useJUnitPlatform() +} diff --git a/gradle/xtend.gradle b/gradle/xtend.gradle new file mode 100644 index 00000000..855dc624 --- /dev/null +++ b/gradle/xtend.gradle @@ -0,0 +1,15 @@ +apply plugin: 'org.xtext.xtend' + +sourceSets { + main { + xtendOutputDir = 'src/main/xtend-gen' + } + test { + xtendOutputDir = 'src/test/xtend-gen' + } +} + +clean.doLast { + delete 'src/main/xtend-gen' + delete 'src/test/xtend-gen' +} -- cgit v1.2.3-54-g00ecf