aboutsummaryrefslogtreecommitdiffstats
path: root/buildSrc/src/main/groovy/refinery-java-conventions.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'buildSrc/src/main/groovy/refinery-java-conventions.gradle')
-rw-r--r--buildSrc/src/main/groovy/refinery-java-conventions.gradle79
1 files changed, 79 insertions, 0 deletions
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..b2efd7e9
--- /dev/null
+++ b/buildSrc/src/main/groovy/refinery-java-conventions.gradle
@@ -0,0 +1,79 @@
1plugins {
2 id 'eclipse'
3 id 'jacoco'
4 id 'java'
5}
6
7repositories {
8 mavenCentral()
9 maven {
10 url 'https://repo.eclipse.org/content/groups/releases/'
11 }
12}
13
14dependencies {
15 testImplementation libs.hamcrest
16 testImplementation libs.junit.api
17 testRuntimeOnly libs.junit.engine
18 testImplementation libs.junit.params
19 testImplementation libs.mockito.core
20 testImplementation libs.mockito.junit
21}
22
23sourceCompatibility = '17'
24targetCompatibility = '17'
25
26def jacocoTestReport = tasks.named('jacocoTestReport')
27jacocoTestReport.configure {
28 dependsOn test
29 reports {
30 xml.required = true
31 }
32}
33
34tasks.named('test') {
35 useJUnitPlatform {
36 excludeTags 'slow'
37 }
38 finalizedBy jacocoTestReport
39}
40
41tasks.register('slowTest', Test) {
42 useJUnitPlatform()
43 finalizedBy jacocoTestReport
44}
45
46tasks.named('jar') {
47 manifest {
48 attributes(
49 'Bundle-SymbolicName': "${project.group}.${project.name}",
50 'Bundle-Version': project.version
51 )
52 }
53}
54
55def generateEclipseSourceFolders = tasks.register('generateEclipseSourceFolders')
56
57tasks.register('prepareEclipse') {
58 dependsOn generateEclipseSourceFolders
59 dependsOn tasks.named('eclipseJdt')
60}
61
62tasks.named('eclipseClasspath') {
63 dependsOn generateEclipseSourceFolders
64}
65
66eclipse {
67 classpath.file.whenMerged {
68 for (entry in entries) {
69 if (entry.path.endsWith('-gen')) {
70 entry.entryAttributes['ignore_optional_problems'] = true
71 }
72 }
73 }
74
75 jdt.file.withProperties { properties ->
76 // Allow @SupperessWarnings to suppress SonarLint warnings
77 properties['org.eclipse.jdt.core.compiler.problem.unhandledWarningToken'] = 'ignore'
78 }
79}