-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
127 lines (108 loc) · 3.01 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
plugins {
id 'java-library'
id 'io.freefair.lombok' version '8.10.2'
id 'jacoco'
id 'org.sonarqube' version '5.1.0.4882'
id 'maven-publish'
}
group = 'com.iexec.commons'
ext {
testContainersVersion = '1.20.4'
}
if (!project.hasProperty('gitBranch')) {
ext.gitBranch = 'git rev-parse --abbrev-ref HEAD'.execute().text.trim()
}
if (gitBranch != 'main' && gitBranch != 'master' && !(gitBranch ==~ '(release|hotfix|support)/.*')) {
version += '-NEXT-SNAPSHOT'
}
repositories {
mavenLocal()
mavenCentral()
maven {
url 'https://docker-regis-adm.iex.ec/repository/maven-public/'
credentials {
username nexusUser
password nexusPassword
}
}
maven { url 'https://jitpack.io' }
}
dependencies {
implementation platform('org.springframework.boot:spring-boot-dependencies:2.7.18')
// web3j
api 'org.web3j:core:4.9.7'
// apache commons.lang3
implementation 'org.apache.commons:commons-lang3'
// multiaddresses (IPFS)
implementation 'com.github.multiformats:java-multiaddr:v1.4.6'
// jaxb required with Java 11 DataTypeConverter in BytesUtils
implementation 'javax.xml.bind:jaxb-api'
// failsafe
implementation 'net.jodah:failsafe:2.4.4'
//TODO Migrate from Awaitility to Failsafe everywhere
implementation 'org.awaitility:awaitility'
// javax annotations like PostConstruct
implementation 'javax.annotation:javax.annotation-api'
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
sourceCompatibility = "11"
targetCompatibility = "11"
withJavadocJar()
withSourcesJar()
}
testing {
suites {
test {
useJUnitJupiter()
dependencies {
implementation 'org.junit.jupiter:junit-jupiter'
implementation 'org.mockito:mockito-junit-jupiter'
implementation 'org.assertj:assertj-core'
implementation "org.testcontainers:junit-jupiter:$testContainersVersion"
// spring-test for ReflectionTestUtils
implementation 'org.springframework:spring-test'
// logback
runtimeOnly 'ch.qos.logback:logback-classic'
}
}
}
}
tasks.withType(Test).configureEach {
finalizedBy jacocoTestReport
}
test {
reports {
junitXml.required = true
html.required = true
}
}
tasks.register('itest') {
group 'Verification'
description 'Runs the integration tests.'
}
// sonarqube code coverage requires jacoco XML report
jacocoTestReport {
reports {
xml.required = true
}
}
tasks.sonarqube.dependsOn tasks.jacocoTestReport
publishing {
publications {
maven(MavenPublication) {
from components.java
}
}
repositories {
maven {
credentials {
username nexusUser
password nexusPassword
}
url = project.hasProperty('nexusUrl') ? nexusUrl : ''
}
}
}