-
Notifications
You must be signed in to change notification settings - Fork 48
/
build.gradle
101 lines (88 loc) · 4.53 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
buildscript {
repositories {
mavenCentral() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } }
gradlePluginPortal() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } }
}
dependencies {
classpath 'com.palantir.jakartapackagealignment:jakarta-package-alignment:0.6.0'
classpath 'com.gradle.publish:plugin-publish-plugin:1.3.0'
classpath 'com.palantir.baseline:gradle-baseline-java:6.3.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.58.0'
classpath 'com.palantir.gradle.jdkslatest:gradle-jdks-latest:0.16.0'
classpath 'com.palantir.gradle.plugintesting:gradle-plugin-testing:0.2.0'
classpath 'com.palantir.javaformat:gradle-palantir-java-format:2.50.0'
classpath 'com.palantir.gradle.revapi:gradle-revapi:1.8.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.git-version'
apply plugin: 'com.palantir.jdks'
apply plugin: 'com.palantir.jdks.latest'
apply plugin: 'com.palantir.baseline'
apply plugin: 'com.palantir.consistent-versions'
version System.env.CIRCLE_TAG ?: gitVersion()
allprojects {
apply plugin: 'com.palantir.baseline-null-away'
apply plugin: 'com.palantir.java-format'
apply plugin: 'com.palantir.jakarta-package-alignment'
group = 'com.palantir.javaformat'
version = rootProject.version
repositories {
mavenCentral() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } }
}
}
subprojects {
apply plugin: 'java-library'
apply plugin: 'org.inferred.processors'
sourceCompatibility = 11
targetCompatibility = 11
tasks.withType(Checkstyle).configureEach {
enabled = false
}
tasks.withType(JavaCompile).configureEach {
options.errorprone.disable 'PreconditionsConstantMessage', 'PreferSafeLoggableExceptions', 'PreferSafeLoggingPreconditions'
}
// Run `./gradlew test -Drecreate=true` to recreate all the expected
// generated code that we have checked into the repo.
tasks.withType(Test).configureEach {
systemProperty 'recreate', System.getProperty('recreate', 'false')
}
}
/**
* There is a bunch of truly snowflaky stuff going on this project, because we have this Java14InputAstVisitor class
* which needs to implement some interface methods defined in com.sun.source.util.TreePathScanner, which varies
* depending on what JVM the formatter is running on!
*/
idea.project.ipr.withXml { xml ->
/**
* Even though the p-j-f codebase has sourceCompat=11 and targetCompat=11, we have to convince IntelliJ to let us
* compile against methods from a newer JVM like visitYield, visitSwitchExpression etc. Hence why we turn off the
* --release flag (using USE_RELEASE_OPTION below)
*/
def compilerConfiguration = xml.asNode().component.find({ it.'@name' == 'CompilerConfiguration' })
compilerConfiguration.value().add(new XmlParser().parseText('<option name="USE_RELEASE_OPTION" value="false" />'))
def module = compilerConfiguration.bytecodeTargetLevel.module.find({ it.'@name' == 'palantir-java-format' })
// Module is null on jdk11
if (module != null) {
module.attributes().target = "14"
}
xml.asNode().value().add(new XmlParser().parseText('''
<component name="JavacSettings">
<option name="PREFER_TARGET_JDK_COMPILER" value="false" />
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="palantir-java-format" options="--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" />
</option>
</component>
'''))
}
jdks {
daemonTarget = 17
}