-
Notifications
You must be signed in to change notification settings - Fork 43
/
build.gradle
127 lines (111 loc) · 5.28 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
/*
* (c) Copyright 2018 Palantir Technologies Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
buildscript {
repositories {
mavenCentral() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } }
gradlePluginPortal() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } }
}
dependencies {
classpath 'com.palantir.baseline:gradle-baseline-java:6.5.0'
classpath 'com.palantir.gradle.conjure:gradle-conjure:5.51.0'
classpath 'com.palantir.gradle.consistentversions:gradle-consistent-versions:2.31.0'
classpath 'com.palantir.gradle.externalpublish:gradle-external-publish-plugin:1.19.0'
classpath 'com.palantir.gradle.failure-reports:gradle-failure-reports:1.13.0'
classpath 'com.palantir.gradle.gitversion:gradle-git-version:3.1.0'
classpath 'com.palantir.gradle.jdks:gradle-jdks:0.59.0'
classpath 'com.palantir.gradle.jdkslatest:gradle-jdks-latest:0.16.0'
classpath 'com.palantir.jakartapackagealignment:jakarta-package-alignment:0.6.0'
classpath 'com.palantir.javaformat:gradle-palantir-java-format:2.50.0'
classpath 'com.palantir.suppressible-error-prone:gradle-suppressible-error-prone:1.6.0'
classpath 'gradle.plugin.org.inferred:gradle-processors:3.7.0'
}
}
apply plugin: 'com.palantir.external-publish'
apply plugin: 'com.palantir.failure-reports'
apply plugin: 'com.palantir.baseline'
apply plugin: 'com.palantir.git-version'
apply plugin: 'com.palantir.jdks'
apply plugin: 'com.palantir.consistent-versions'
apply plugin: 'com.palantir.baseline-java-versions'
apply plugin: 'com.palantir.jdks.latest'
javaVersions {
libraryTarget = 17
runtime = 21
}
allprojects {
apply plugin: 'com.palantir.java-format'
apply plugin: 'com.palantir.jakarta-package-alignment'
version System.env.CIRCLE_TAG ?: gitVersion()
group 'com.palantir.conjure.java'
repositories {
mavenCentral() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } }
}
configurations.all {
resolutionStrategy.preferProjectModules()
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'org.glassfish.hk2.external' && details.requested.name == 'javax.inject') {
details.useTarget group: 'javax.inject', name: 'javax.inject', version: '1'
details.because "The glassfish shaded copy is only necessary for OSGI environments, which we do not endorse."
}
if (details.requested.group == 'com.google.errorprone' && details.requested.name == 'error_prone_annotations') {
details.useTarget group: 'com.google.errorprone', name: 'error_prone_annotations', version: '2.7.1'
details.because "The error_prone_annotations dependency must be low to avoid forcing consumers to use newer releases"
}
if (details.requested.group.startsWith('com.fasterxml.jackson') && (details.requested.version == '2.16.0' || details.requested.version == '2.16.1')) {
details.useTarget group: details.requested.group, name: details.requested.name, version: '2.15.3'
details.because 'https://github.com/FasterXML/jackson-databind/pull/4230'
}
if (details.requested.group.startsWith('org.slf4j')) {
details.useTarget group: details.requested.group, name: details.requested.name, version: '1.7.36'
details.because 'Dropwizard 2.x is used in tests. This version of Dropwizard only supports SLF4J < ' +
'2.x. Until we upgrade Dropwizard, we should continue using a version of SLF4J < 2.x'
}
}
}
}
subprojects {
apply plugin: 'java-library'
apply plugin: 'org.inferred.processors'
apply plugin: 'com.palantir.baseline-class-uniqueness'
tasks.withType(JavaCompile) {
options.compilerArgs += ['-Werror']
options.errorprone.disable 'PreferSafeLoggableExceptions', 'PreferSafeLoggingPreconditions', 'UnnecessaryLambda'
}
// Run `./gradlew test -Drecreate=true` to recreate all the expected
// generated code that we have checked into the repo.
tasks.withType(Test) {
systemProperty 'recreate', System.getProperty('recreate', 'false')
}
checkUnusedDependencies {
// avoid spurious flags
ignore 'org.jetbrains', 'annotations'
}
tasks.check.dependsOn checkImplicitDependencies, checkUnusedDependencies
}
configurations {
conjureJava
}
configurations.conjureJava.exclude group: 'com.palantir.conjure.java'
afterEvaluate {
dependencies {
conjureJava files(project(':conjure-java').tasks.distTar.archiveFile) {
builtBy project(':conjure-java').tasks.distTar
}
}
}
jdks {
daemonTarget = 17
}