-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathbuild.savant
More file actions
141 lines (120 loc) · 4.27 KB
/
Copy pathbuild.savant
File metadata and controls
141 lines (120 loc) · 4.27 KB
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
141
/*
* Copyright (c) 2016-2025, FusionAuth, 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.
*/
jacksonVersion = "2.15.4"
slf4jVersion = "1.7.36"
project(group: "io.fusionauth", name: "fusionauth-jwt", version: "7.0.0", licenses: ["ApacheV2_0"]) {
workflow {
fetch {
// 1. Check local Savant cache
cache()
// 2. Check public Savant repo
url(url: "https://repository.savantbuild.org")
// 3. Pull it from Maven central
maven()
}
publish {
cache()
}
}
publishWorkflow {
subversion(repository: "https://svn.savantbuild.org")
}
dependencies {
group(name: "compile") {
dependency(id: "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}")
dependency(id: "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}")
dependency(id: "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}")
}
group(name: "test-compile", export: false) {
dependency(id: "org.bouncycastle:bc-fips:2.1.2")
dependency(id: "org.testng:testng:7.9.0")
// Gets rid of SLF warnings on test run
// SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
// SLF4J: Defaulting to no-operation (NOP) logger implementation
// SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
dependency(id: "org.slf4j:slf4j-nop:${slf4jVersion}")
}
}
publications {
standard()
}
}
/*
* Define Plugins
*/
dependency = loadPlugin(id: "org.savantbuild.plugin:dependency:2.0.0")
file = loadPlugin(id: "org.savantbuild.plugin:file:2.0.0")
java = loadPlugin(id: "org.savantbuild.plugin:java:2.0.0")
javaTestNG = loadPlugin(id: "org.savantbuild.plugin:java-testng:2.1.0")
idea = loadPlugin(id: "org.savantbuild.plugin:idea:2.0.0")
pom = loadPlugin(id: "org.savantbuild.plugin:pom:2.0.0")
release = loadPlugin(id: "org.savantbuild.plugin:release-git:2.0.0")
/*
* Plugin Settings
*/
java.settings.javaVersion = "25"
javaTestNG.settings.javaVersion = "25"
/*
* Targets
*/
target(name: "clean", description: "Cleans the project") {
java.clean()
}
target(name: "compile", description: "Compiles the project") {
java.compile()
}
target(name: "jar", description: "JARs the project", dependsOn: ["compile"]) {
java.jar()
}
target(name: "test", description: "Runs the project's tests", dependsOn: ["jar"]) {
// Add "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" to the jvmArguments lines below to enable remote debugging
// Example:
// javaTestNG.settings.jvmArguments += "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
boolean[] fipsEnabled = [false, true]
if (switches.has("fips")) {
fipsEnabled = [true]
} else if (switches.has("jca")) {
fipsEnabled = [false]
}
fipsEnabled.each { enabled ->
javaTestNG.settings.jvmArguments = "-Dtest.fips=${enabled}"
javaTestNG.test()
}
}
target(name: "doc", description: "Generate the project's JavaDoc", dependsOn: ["jar"]) {
java.document()
}
target(name: "int", description: "Releases a local integration build of the project", dependsOn: ["test"]) {
dependency.integrate()
}
target(name: "release", description: "Releases a full version of the project", dependsOn: ["test"]) {
release.release()
}
target(name: "pom", description: "Updates the pom.xml file") {
pom.update()
file.copy(to: ".") {
fileSet(dir: ".", includePatterns: [~/pom.xml/])
filter(token: "1.0.2\\+P6", value: "1.0.2.6")
}
}
target(name: "publish", description: "Publish to MVN repo", dependsOn: ["clean", "compile"]) {
if (new ProcessBuilder('mvn', 'clean', 'deploy', '-Prelease').inheritIO().start().waitFor() != 0) {
fail("deploy failed")
}
}
target(name: "idea", description: "Updates the IntelliJ IDEA module file") {
idea.iml()
}