-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
140 lines (122 loc) · 5.8 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
128
129
130
131
132
133
134
135
136
137
138
139
140
plugins {
id 'idea'
id 'jacoco'
id 'java-library'
id 'maven-publish'
id 'com.diffplug.spotless' version '6.25.0'
id 'com.github.ben-manes.versions' version '0.51.0'
id 'com.jfrog.artifactory' version '5.2.5'
id 'org.sonarqube' version '5.1.0.4882'
id 'io.spring.dependency-management' version '1.1.7'
id 'org.springframework.boot' version '3.4.1'
id 'ru.vyarus.quality' version '5.0.0'
id 'com.srcclr.gradle' version '3.1.12'
}
group = gradle.projectGroup
project.ext {
isCiServer = System.getenv().containsKey("CI")
}
// If true, search local repository (~/.m2/repository/) first for dependencies.
def useMavenLocal = false
repositories {
if (useMavenLocal) {
mavenLocal() // must be listed first to take effect
}
mavenCentral()
maven {
url 'https://broadinstitute.jfrog.io/broadinstitute/libs-release-local/'
}
maven {
url 'https://broadinstitute.jfrog.io/broadinstitute/libs-snapshot-local/'
}
}
dependencies {
// Throughout, unversioned dependencies might be versioned by Spring dependency manager
// and/or some other BOM (bill of materials).
// Common utils
implementation group: 'org.apache.commons', name: 'commons-dbcp2'
implementation group: 'org.apache.commons', name: 'commons-lang3'
implementation group: 'org.apache.commons', name: 'commons-pool2'
implementation group: 'org.hashids', name: 'hashids', version: '1.0.3'
// Spring
implementation group: 'org.springframework.retry', name: 'spring-retry'
implementation group: 'org.springframework.boot', name: 'spring-boot-autoconfigure'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jdbc'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web'
annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor'
// Misc. Services
implementation group: 'io.kubernetes', name: 'client-java', version: '21.0.2'
constraints {
implementation('org.bouncycastle:bcprov-jdk18on:1.79') {
because 'https://broadworkbench.atlassian.net/browse/DCJ-275'
}
}
implementation group: 'io.prometheus', name: 'simpleclient_httpserver', version: '0.16.0'
implementation group: 'jakarta.ws.rs', name: 'jakarta.ws.rs-api'
// Google dependencies
// use common bom
implementation platform('com.google.cloud:libraries-bom:26.52.0')
implementation group: 'com.google.cloud', name: 'google-cloud-core'
implementation group: 'com.google.cloud', name: 'google-cloud-pubsub'
api group: 'com.google.guava', name: 'guava'
// Database
implementation group: 'org.liquibase', name: 'liquibase-core'
runtimeOnly group: 'org.postgresql', name: 'postgresql'
// Terra libraries
implementation group: 'org.broadinstitute.dsde.workbench', name: 'sam-client_2.13', version: 'v0.0.329'
var stairwayVersion= '1.1.17-SNAPSHOT'
api "bio.terra:stairway-gcp:${stairwayVersion}"
implementation "bio.terra:stairway-azure:${stairwayVersion}"
// Logging
implementation group: 'com.google.apis', name: 'google-api-services-logging', version: 'v2-rev20241018-2.0.0'
implementation group: 'ch.qos.logback.contrib', name: 'logback-json-classic', version: '0.1.5'
implementation group: 'ch.qos.logback.contrib', name: 'logback-jackson', version: '0.1.5'
// OpenTelemetry dependencies:
// Spring Boot 3.4.0 pulls in opentelemetry-bom 1.43.0.
// We choose opentelemetry-instrumentation-bom-alpha:2.9.0-alpha because otel-instrumentation 2.9.0 targets otel 1.43.0.
// When upgrading Spring Boot, re-check these versions.
implementation platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:2.9.0-alpha")
// ... versioned by Spring Boot
api 'io.opentelemetry:opentelemetry-api'
implementation 'io.opentelemetry:opentelemetry-exporter-logging'
implementation 'io.opentelemetry:opentelemetry-exporter-otlp'
implementation 'io.opentelemetry:opentelemetry-sdk-extension-autoconfigure'
// ... versioned by opentelemetry-instrumentation-bom-alpha
implementation 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations'
implementation 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api'
implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-autoconfigure'
implementation 'io.opentelemetry.semconv:opentelemetry-semconv'
implementation 'io.opentelemetry:opentelemetry-api-incubator'
implementation 'io.opentelemetry:opentelemetry-exporter-prometheus'
// Google cloud open telemetry exporters
implementation 'com.google.cloud.opentelemetry:exporter-trace:0.33.0'
implementation 'com.google.cloud.opentelemetry:exporter-metrics:0.33.0'
// Testing
testImplementation 'org.springframework:spring-aspects' // for tracing in tests
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'com.vaadin.external.google', module: 'android-json'
}
testImplementation group: 'org.openapitools', name: 'jackson-databind-nullable', version: '0.2.6'
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
// for scans
if (hasProperty('buildScan')) {
buildScan {
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
termsOfServiceAgree = 'yes'
}
}
def gradleIncDir = "$rootDir/gradle"
apply from: "$gradleIncDir/application.gradle"
apply from: "$gradleIncDir/jacoco.gradle"
apply from: "$gradleIncDir/javadoc.gradle"
apply from: "$gradleIncDir/publishing.gradle"
apply from: "$gradleIncDir/quality.gradle"
apply from: "$gradleIncDir/srcclr.gradle"
apply from: "$gradleIncDir/sonarqube.gradle"
apply from: "$gradleIncDir/spotless.gradle"
apply from: "$gradleIncDir/testing.gradle"