-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.gradle
137 lines (113 loc) · 6.02 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
plugins {
id 'application'
id 'idea'
id 'java'
id 'jacoco'
id 'com.diffplug.spotless' version '6.16.0'
id 'com.github.spotbugs' version '5.0.13'
id 'org.gradle.test-retry' version '1.4.1'
id 'org.sonarqube' version '4.0.0.2929'
// Fix guava -jre vs -android dependency resolution.
// The terra-cloud-resource library requires the -jre guava version. Without this plugin, we may
// use the wrong guava version, leading to runtime errors.
// See also https://blog.gradle.org/guava
id 'de.jjohannes.missing-metadata-guava' version '31.1.1'
}
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 {
// Needed for Mac M1
implementation group: 'net.java.dev.jna', name: 'jna', version: '5.12.1'
// Needed for terra cloud resource library
implementation 'com.google.guava:listenablefuture:1.0'
// Terra deps
// TODO(PF-1928) - update versions after Terra-client JDK updates
implementation group: 'bio.terra', name: 'datarepo-client', version: '1.0.155-SNAPSHOT'
implementation group: 'bio.terra', name: 'externalcreds-client-resttemplate', version: '0.101.0-SNAPSHOT'
implementation group: 'bio.terra', name: 'terra-resource-janitor-client', version: '0.113.5-SNAPSHOT'
implementation group: 'bio.terra', name: 'user-client', version: '0.3.0-SNAPSHOT'
implementation group: 'bio.terra', name: 'workspace-manager-client', version: '0.254.879-SNAPSHOT'
implementation group: 'bio.terra', name: 'terra-axon-server', version: '0.45.0-SNAPSHOT'
implementation group: 'bio.terra', name: 'terra-cloud-resource-lib', version: "1.2.23-SNAPSHOT"
implementation group: 'org.broadinstitute.dsde.workbench', name: 'sam-client_2.13', version: '0.1-ffb0a89-SNAP'
// command parsing
implementation group: 'info.picocli', name: 'picocli', version: '4.6.3'
// logging
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.4.0'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.0'
// serialization
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.13.4'
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.13.4'
// GCP dependencies
// TODO(PF-1928) - update versions after Terra-client JDK updates
implementation group: 'com.google.auth', name: 'google-auth-library-credentials', version: '1.6.0'
implementation group: 'com.google.auth', name: 'google-auth-library-oauth2-http', version: '1.6.0'
implementation group: 'com.google.oauth-client', name: 'google-oauth-client-java6', version: '1.33.3'
implementation group: 'com.google.oauth-client', name: 'google-oauth-client-jetty', version: '1.33.3'
implementation group: 'com.google.cloud', name: 'google-cloud-bigquery', version: '1.116.0'
implementation group: 'com.google.cloud', name: 'google-cloud-storage', version: '2.7.2'
// AWS dependencies
implementation platform('software.amazon.awssdk:bom:2.20.22')
implementation 'software.amazon.awssdk:regions'
implementation 'software.amazon.awssdk:s3'
implementation 'software.amazon.awssdk:sagemaker'
// Ini for writing AWS configuration files
implementation group: 'org.ini4j', name: 'ini4j', version: '0.5.4'
// Docker
implementation group: 'com.github.docker-java', name: 'docker-java-core', version: '3.2.13'
implementation group: 'com.github.docker-java', name: 'docker-java-transport-httpclient5', version: '3.2.13'
// static analysis
compileOnly group: 'com.github.spotbugs', name: 'spotbugs-annotations', version: '4.7.2'
testCompileOnly group: 'com.github.spotbugs', name: 'spotbugs-annotations', version: '4.7.2'
// Deps whose versions are controlled by Spring
implementation group: 'org.apache.commons', name: 'commons-text', version: '1.9'
implementation group: 'org.apache.commons', name: 'commons-lang3'
// Swagger deps
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: '2.2.2'
// auth0 deps
implementation 'com.auth0:auth0:2.3.0'
implementation group: 'com.mashape.unirest', name: 'unirest-java', version: '1.4.9'
implementation 'com.flagsmith:flagsmith-java-client:7.1.0'
// Test deps
testImplementation platform('org.junit:junit-bom:5.9.0')
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter', version: '5.9.0'
testImplementation group: 'org.hamcrest', name: 'hamcrest', version: '2.2'
testImplementation group: 'org.mockito', name: 'mockito-core', version: '5.3.0'
// Read only access to AWS config files, used for validation
testImplementation platform('software.amazon.awssdk:bom:2.18.34')
testImplementation group: 'software.amazon.awssdk', name: 'profiles'
// PubSub is used in tests to communicate with Janitor, but is not required for the CLI itself.
testImplementation group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '1.120.13'
annotationProcessor group: 'info.picocli', name: 'picocli-codegen', version: '4.6.3'
}
// 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/dependency-locking.gradle"
apply from: "$gradleIncDir/jacoco.gradle"
apply from: "$gradleIncDir/sonarqube.gradle"
apply from: "$gradleIncDir/spotbugs.gradle"
apply from: "$gradleIncDir/spotless.gradle"
apply from: "$gradleIncDir/tools.gradle"
apply from: "$gradleIncDir/testing.gradle"