-
-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathbuild.gradle
More file actions
116 lines (98 loc) · 3.26 KB
/
build.gradle
File metadata and controls
116 lines (98 loc) · 3.26 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
import com.github.stickerifier.stickerify.JlinkJavaLauncher
import com.github.stickerifier.stickerify.JlinkTask
plugins {
id('application')
id('java')
id('jacoco')
alias(libs.plugins.shadow)
}
repositories {
mavenCentral()
}
dependencies {
implementation(libs.batik)
implementation(libs.gson)
implementation(libs.imageio.batik)
implementation(libs.imageio.psd)
implementation(libs.jave)
implementation(libs.logback.classic)
implementation(libs.logback.core)
implementation(libs.scrimage.core)
implementation(libs.scrimage.formats.extra)
implementation(libs.scrimage.webp)
implementation(libs.slf4j.api)
implementation(libs.telegram.bot.api)
implementation(libs.tika)
testImplementation(libs.hamcrest)
testImplementation(libs.junit.jupiter)
testImplementation(libs.mockwebserver)
testRuntimeOnly(libs.junit.platform)
constraints {
implementation('org.apache.commons:commons-lang3') {
version {
strictly('[3.18.0, 4)')
}
because('CVE-2025-48924: Apache Commons Lang is vulnerable to Uncontrolled Recursion when processing long inputs')
}
}
}
group = 'com.github.stickerifier'
version = '1.0'
description = 'Telegram bot to convert medias in the format required to be used as Telegram stickers'
java.toolchain {
languageVersion = JavaLanguageVersion.of(24)
vendor = JvmVendorSpec.AZUL
}
updateDaemonJvm {
languageVersion = JavaLanguageVersion.of(24)
vendor = JvmVendorSpec.AZUL
}
def jlink = tasks.register('jlink', JlinkTask) {
options = ['--strip-debug', '--no-header-files', '--no-man-pages']
modules = ['java.desktop', 'java.instrument', 'java.naming', 'java.sql', 'jdk.crypto.ec', 'jdk.unsupported']
group = 'build'
description = 'Generates a minimal JRE for the project.'
}
test {
inputs.dir(jlink.map { it.outputDirectory.get().asFile })
javaLauncher = providers.provider { new JlinkJavaLauncher(jlink.get()) }
useJUnitPlatform()
finalizedBy(jacocoTestReport)
testLogging {
events "passed"
}
}
jacocoTestReport {
reports {
html.required = false
xml.required = true
xml.outputLocation = file('.qodana/code-coverage/report.xml')
}
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it, exclude: ['**/MediaConstraints.class',
'**/stickerify/exception/**',
'**/stickerify/process/**',
'**/stickerify/runner/**',
'**/stickerify/telegram/**'])
})
}
}
application {
mainClass = 'com.github.stickerifier.stickerify.runner.Main'
}
shadowJar {
duplicatesStrategy = DuplicatesStrategy.INCLUDE
mergeServiceFiles()
failOnDuplicateEntries = true
exclude('dist_webp_binaries/',
'META-INF/LICENSE',
'META-INF/LICENSE.txt',
'META-INF/NOTICE',
'META-INF/NOTICE.txt',
'license/LICENSE',
'license/LICENSE.dom-documentation.txt',
'license/LICENSE.dom-software.txt',
'license/NOTICE',
'license/README.dom.txt')
}