forked from diffplug/spotless
-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.gradle
113 lines (103 loc) · 3.85 KB
/
settings.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
pluginManagement {
plugins {
// We are stuck dogfooding at 5.5.0 for a very strange reason:
// 5.8.0+ Cannot get property 'versionLast' on null object @ spotless-freshmark.gradle:58
// 5.6.0+ Tried to add format named 'freshmark' of type class @ spotless-freshmark.gradle:55
id 'com.diffplug.spotless' version '5.5.1'
// https://github.com/diffplug/goomph/blob/main/CHANGES.md
id 'com.diffplug.eclipse.resourcefilters' version '3.27.0'
// https://plugins.gradle.org/plugin/com.gradle.plugin-publish
id 'com.gradle.plugin-publish' version '0.14.0'
// https://github.com/gradle-nexus/publish-plugin/releases
id 'io.github.gradle-nexus.publish-plugin' version '1.0.0'
// https://github.com/spotbugs/spotbugs-gradle-plugin/releases
id 'com.github.spotbugs' version '4.7.0'
// https://github.com/diffplug/spotless-changelog
id 'com.diffplug.spotless-changelog' version '2.1.2'
}
}
plugins {
id 'com.diffplug.spotless' apply false
id 'com.diffplug.eclipse.resourcefilters' apply false
id 'com.gradle.plugin-publish' apply false
id 'io.github.gradle-nexus.publish-plugin' apply false
id 'com.github.spotbugs' apply false
id 'com.diffplug.spotless-changelog' apply false
}
if (System.env['CI'] != null) {
// use the remote buildcache on all CI builds
buildCache {
def cred = {
if (System.env[it] != null) {
return System.env[it]
} else {
return System.getProperty(it)
}
}
remote(HttpBuildCache) {
url = 'https://buildcache.diffplug.com/cache/'
// but we only push if it's a trusted build (not PRs)
String user = cred('buildcacheuser')
String pass = cred('buildcachepass')
if (user != null && pass != null) {
push = true
credentials {
username = user
password = pass
}
} else {
credentials { username = 'anonymous' }
}
}
}
}
if (startParameter.getProjectProperties().get('release') != 'true') {
// the ide project screws up the release tasks
include 'ide'
}
rootProject.name = 'spotless'
include 'lib' // reusable library with no dependencies
include 'testlib' // library for sharing test infrastructure between the projects below
include 'lib-extra' // reusable library with lots of dependencies
include 'plugin-gradle' // gradle-specific glue code
def getStartProperty(java.lang.String name) {
def value = startParameter.getProjectProperties().get(name)
if(null != value) {
return value
}
// user properties are not available in the startParameter
def userPropertiesFile = new java.io.File(startParameter.getGradleUserHomeDir(), 'gradle.properties')
def userProperties = new java.util.Properties()
if (userPropertiesFile.exists()) {
userProperties.load(userPropertiesFile.newReader())
}
return userProperties.get(name)
}
if (System.getenv('SPOTLESS_EXCLUDE_MAVEN') != 'true' && getStartProperty('SPOTLESS_EXCLUDE_MAVEN') != 'true' && System.getenv('JITPACK') != 'true') {
include 'plugin-maven' // maven-specific glue code
}
// include external (_ext) projects from development builds
if (getStartProperty('com.diffplug.spotless.include.ext') == 'true') {
file('_ext').eachDirMatch(~/^(?!(\.|gradle)).*/) { dir ->
include dir.name
project(":${dir.name}").projectDir = dir
}
}
// include external (_ext) projects from development builds, but disable the p2 parts
if (getStartProperty('com.diffplug.spotless.include.ext.nop2') == 'true') {
file('_ext').eachDirMatch(~/^(?!(\.|gradle)).*/) { dir ->
include dir.name
project(":${dir.name}").projectDir = dir
}
}
// the p2-based projects are too expensive for routine CI builds, so they have to be invoked explicitly
for (kind in [
'cdt',
'groovy',
'wtp'
]) {
if (getStartProperty("com.diffplug.spotless.include.ext.${kind}") == 'true') {
include "eclipse-${kind}"
project(":eclipse-${kind}").projectDir = file("_ext/eclipse-${kind}")
}
}