Files
hamster-core/hamster-core-bukkit/build.gradle
2023-06-06 11:11:42 +08:00

115 lines
3.8 KiB
Groovy

//file:noinspection GroovyAssignabilityCheck
plugins {
id 'com.github.johnrengelman.shadow' version '7.1.2'
}
setArchivesBaseName("HamsterCore-Bukkit")
evaluationDependsOn(':hamster-core-common')
configurations {
oldJar
}
dependencies {
implementation "de.tr7zw:item-nbt-api:2.11.2"
//noinspection VulnerableLibrariesLocal
compileOnly 'org.spigotmc:spigot-api:1.19.4-R0.1-SNAPSHOT' exclude group: "com.google.code.gson"
compileOnly 'net.milkbowl.vault:VaultAPI:1.7' transitive false
compileOnly 'org.black_ixx:playerpoints:2.1.3' transitive false
api project(":hamster-core-common") transitive false
// https://mvnrepository.com/artifact/net.kyori/adventure-platform-bukkit
api "net.kyori:adventure-platform-bukkit:${adventure_version}"
// https://mvnrepository.com/artifact/net.kyori/adventure-text-minimessage
api "net.kyori:adventure-text-minimessage:${adventure_serializer_version}"
// https://mvnrepository.com/artifact/net.kyori/adventure-text-serializer-gson
api "net.kyori:adventure-text-serializer-gson:${adventure_serializer_version}"
// https://mvnrepository.com/artifact/net.kyori/adventure-text-serializer-legacy
api "net.kyori:adventure-text-serializer-legacy:${adventure_serializer_version}"
// https://mvnrepository.com/artifact/com.zaxxer/HikariCP
compileOnly "com.zaxxer:HikariCP:${HikariCP_version}"
//noinspection GradlePackageUpdate
oldJar 'com.zaxxer:HikariCP:4.0.3'
//noinspection VulnerableLibrariesLocal
oldJar "net.kyori:adventure-platform-bukkit:${adventure_version}"
}
processResources {
inputs.property "version", project.version
filesMatching("plugin.yml") {
expand "version": project.version,
"adventure_version": adventure_version,
"adventure_serializer_version": adventure_serializer_version,
"HikariCP_version": HikariCP_version
}
}
jar {
//noinspection GrDeprecatedAPIUsage
classifier = "jar"
}
tasks.compileJava.dependsOn(":hamster-core-common:build")
shadowJar {
//noinspection GrDeprecatedAPIUsage
classifier = ""
dependencies {
exclude(dependency {
it.moduleGroup != 'cn.hamster3.mc.plugin.core' && it.moduleGroup != 'de.tr7zw'
})
}
relocate 'de.tr7zw.changeme.nbtapi', 'cn.hamster3.mc.plugin.core.bukkit.nbtapi'
relocate 'de.tr7zw.annotations', 'cn.hamster3.mc.plugin.core.bukkit.nbtapi.annotations'
destinationDir(getRootProject().buildDir)
}
tasks.build.dependsOn(shadowJar)
tasks.register("oldJar", Jar) {
dependsOn("jar")
//noinspection GrDeprecatedAPIUsage
setClassifier("Old")
from([
tasks.jar.outputs.files.collect {
it.isDirectory() ? it : zipTree(it)
},
configurations.shade.collect {
it.isDirectory() ? it : zipTree(it)
},
configurations.oldJar.collect {
it.isDirectory() ? it : zipTree(it)
}
])
destinationDir(getRootProject().buildDir)
}
tasks.build.dependsOn(oldJar)
publishing {
publications {
shadow(MavenPublication) { publication ->
{
def projectNameSplit = project.name.split('-')
artifactId = projectNameSplit[projectNameSplit.length - 1]
from components.java
}
}
}
repositories {
maven {
def releasesRepoUrl = 'https://maven.airgame.net/maven-releases/'
def snapshotsRepoUrl = 'https://maven.airgame.net/maven-snapshots/'
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
username = rootProject.properties.getOrDefault("maven_username", "")
password = rootProject.properties.getOrDefault("maven_password", "")
}
}
}
}