From 2457f042578634478965212067df82bef2cb8eb4 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Wed, 17 Nov 2021 03:56:45 +0100 Subject: build: library and application convetion plugins --- .../main/groovy/refinery-java-conventions.gradle | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 buildSrc/src/main/groovy/refinery-java-conventions.gradle (limited to 'buildSrc/src/main/groovy/refinery-java-conventions.gradle') diff --git a/buildSrc/src/main/groovy/refinery-java-conventions.gradle b/buildSrc/src/main/groovy/refinery-java-conventions.gradle new file mode 100644 index 00000000..fcdc8ea9 --- /dev/null +++ b/buildSrc/src/main/groovy/refinery-java-conventions.gradle @@ -0,0 +1,76 @@ +plugins { + id 'eclipse' + id 'jacoco' + id 'java' +} + +repositories { + mavenCentral() + maven { + url 'https://repo.eclipse.org/content/groups/releases/' + } +} + +dependencies { + testImplementation libs.hamcrest + testImplementation libs.junit.api + testRuntimeOnly libs.junit.engine + testImplementation libs.junit.params + testImplementation libs.mockito.core + testImplementation libs.mockito.junit +} + +sourceCompatibility = '17' +targetCompatibility = '17' + +def jacocoTestReport = tasks.named('jacocoTestReport') +jacocoTestReport.configure { + dependsOn test + reports { + xml.required = true + } +} + +tasks.named('test') { + useJUnitPlatform { + excludeTags 'slow' + } + finalizedBy jacocoTestReport +} + +tasks.register('slowTest', Test) { + useJUnitPlatform() + finalizedBy jacocoTestReport +} + +tasks.named('jar') { + manifest { + attributes 'Bundle-SymbolicName': project.name + } +} + +def generateEclipseSourceFolders = tasks.register('generateEclipseSourceFolders') + +tasks.register('prepareEclipse') { + dependsOn generateEclipseSourceFolders + dependsOn tasks.named('eclipseJdt') +} + +tasks.named('eclipseClasspath') { + dependsOn generateEclipseSourceFolders +} + +eclipse { + classpath.file.whenMerged { + for (entry in entries) { + if (entry.path.endsWith('-gen')) { + entry.entryAttributes['ignore_optional_problems'] = true + } + } + } + + jdt.file.withProperties { properties -> + // Allow @SupperessWarnings to suppress SonarLint warnings + properties['org.eclipse.jdt.core.compiler.problem.unhandledWarningToken'] = 'ignore' + } +} -- cgit v1.2.3-70-g09d2