asynchronizer
/
build.gradle.kts
229 строк · 6.8 Кб
1@file:Suppress("UnstableApiUsage")
2
3import org.jreleaser.model.Active
4
5plugins {
6`java-library`
7`maven-publish`
8alias(libs.plugins.jreleaser)
9}
10
11allprojects {
12
13group = properties["PROJECT_GROUP"].toString()
14version = properties[project.name + "-version"].toString()
15description = properties[project.name + "-description"].toString()
16
17repositories {
18mavenCentral()
19}
20
21}
22
23subprojects {
24
25apply(plugin = "java-library")
26apply(plugin = "maven-publish")
27apply(plugin = rootProject.libs.plugins.jreleaser.get().pluginId)
28
29configure<JavaPluginExtension> {
30sourceCompatibility = JavaVersion.VERSION_17
31targetCompatibility = JavaVersion.VERSION_17
32}
33
34tasks.withType<JavaCompile> {
35options.encoding = "UTF-8"
36options.compilerArgs.add("-parameters")
37}
38
39tasks.withType<Jar> {
40isPreserveFileTimestamps = false
41isReproducibleFileOrder = true
42}
43
44java {
45withJavadocJar()
46withSourcesJar()
47}
48
49dependencies {
50compileOnly(rootProject.libs.lombok)
51annotationProcessor(rootProject.libs.lombok)
52
53testCompileOnly(rootProject.libs.lombok)
54testAnnotationProcessor(rootProject.libs.lombok)
55}
56
57testing {
58suites {
59val test by getting(JvmTestSuite::class) {
60testType.set(TestSuiteType.UNIT_TEST)
61
62useJUnitJupiter()
63
64dependencies {
65implementation.bundle(rootProject.testLibs.bundles.junitAndMockito)
66}
67}
68}
69}
70
71publishing {
72
73publications {
74create<MavenPublication>("release") {
75from(components["java"])
76
77artifactId = project.name
78
79pom {
80inceptionYear = "2024"
81name.set(project.name)
82description.set(project.description)
83url.set(project.properties["PROJECT_URL"].toString())
84
85issueManagement {
86url.set(project.properties["PROJECT_ISSUES_URL"].toString())
87}
88
89scm {
90url.set(project.properties["PROJECT_REPO_URL"].toString())
91connection.set(project.properties["PROJECT_GIT_URL"].toString())
92developerConnection.set(project.properties["PROJECT_GIT_URL"].toString())
93}
94
95licenses {
96license {
97name.set(project.properties["PROJECT_LICENSE_NAME"].toString())
98url.set(project.properties["PROJECT_LICENSE_URL"].toString())
99distribution.set("repo")
100}
101}
102
103developers {
104developer {
105id.set(project.properties["AUTHOR_ID"].toString())
106name.set(project.properties["AUTHOR_NAME"].toString())
107email.set(project.properties["AUTHOR_EMAIL"].toString())
108url.set(project.properties["AUTHOR_URL"].toString())
109}
110}
111}
112}
113}
114
115repositories {
116maven {
117setUrl(layout.buildDirectory.dir("staging-deploy"))
118}
119}
120
121}
122
123jreleaser {
124beforeEvaluate {
125mkdir(layout.buildDirectory.dir("jreleaser"))
126}
127gitRootSearch = true
128project {
129inceptionYear = "2024"
130author(properties["AUTHOR_NAME"].toString())
131}
132signing {
133active = Active.ALWAYS
134armored = true
135verify = true
136}
137release {
138github {
139overwrite = true
140sign = true
141branch = properties["RELEASE_BRANCH"].toString()
142branchPush = properties["RELEASE_BRANCH"].toString()
143changelog {
144formatted = Active.ALWAYS
145format = "- {{commitShortHash}} {{commitTitle}}"
146contributors {
147enabled = false
148}
149labeler {
150label = "feature"
151title = "feat:"
152}
153labeler {
154label = "bug"
155title = "fix:"
156}
157labeler {
158label = "task"
159title = "chore:"
160}
161labeler {
162label = "task"
163title = "ci:"
164}
165labeler {
166label = "doc"
167title = "docs:"
168}
169category {
170title = "🚀 New Features"
171key = "feature"
172labels = setOf("feature")
173order = 1
174}
175category {
176title = "🐞 Bug Fixes"
177key = "bug"
178labels = setOf("bug")
179order = 2
180}
181category {
182title = "🔨 Tasks"
183key = "task"
184labels = setOf("task")
185order = 3
186}
187category {
188title = "📔 Docs"
189key = "doc"
190labels = setOf("doc")
191order = 4
192}
193replacer {
194search = "feat: "
195replace = ""
196}
197replacer {
198search = "fix: "
199replace = ""
200}
201replacer {
202search = "chore: "
203replace = ""
204}
205replacer {
206search = "ci: "
207replace = ""
208}
209replacer {
210search = "docs: "
211replace = ""
212}
213}
214}
215}
216deploy {
217maven {
218mavenCentral.create(properties["RELEASE_DEPLOYER_NAME"].toString()) {
219active = Active.ALWAYS
220url = properties["RELEASE_DEPLOYER_URL"].toString()
221stagingRepository(layout.buildDirectory.dir("staging-deploy").get().toString())
222setAuthorization("Basic")
223retryDelay = 60
224}
225}
226}
227}
228
229}
230