build: 优化构建脚本

This commit is contained in:
2023-06-16 21:39:34 +08:00
parent 20517e7207
commit 421f28586e
7 changed files with 54 additions and 137 deletions

View File

@@ -1,5 +1,7 @@
//file:noinspection GrDeprecatedAPIUsage
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '7+'
}
group 'cn.hamster3.mc.plugin'
@@ -8,6 +10,7 @@ version '1.0.0-SNAPSHOT'
subprojects {
apply plugin: 'java-library'
apply plugin: 'maven-publish'
apply plugin: 'com.github.johnrengelman.shadow'
group = rootProject.group
version = rootProject.version
@@ -18,10 +21,6 @@ subprojects {
}
}
configurations {
shade
}
dependencies {
// https://mvnrepository.com/artifact/org.jetbrains/annotations
compileOnly 'org.jetbrains:annotations:23.0.0'
@@ -46,6 +45,10 @@ subprojects {
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
}
jar {
classifier = 'dev'
}
javadoc {
options.quiet()
options.setEncoding("UTF-8")
@@ -58,4 +61,37 @@ subprojects {
'https://bukkit.windit.net/javadoc'
]
}
shadowJar {
classifier = ''
relocate 'org.slf4j', 'cn.hamster3.mc.plugin.core.lib.slf4j'
relocate 'net.kyori', 'cn.hamster3.mc.plugin.core.lib.kyori'
relocate 'com.zaxxer.hikari', 'cn.hamster3.mc.plugin.core.lib.hikari'
relocate 'de.tr7zw.changeme.nbtapi', 'cn.hamster3.mc.plugin.core.lib.nbtapi'
relocate 'de.tr7zw.annotations', 'cn.hamster3.mc.plugin.core.lib.nbtapi.annotations'
destinationDir(rootProject.buildDir)
}
tasks.build.dependsOn(shadowJar)
publishing {
publications {
mavenJava(MavenPublication) {
from project.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", "")
}
}
}
}
}

View File

@@ -1,9 +1,3 @@
//file:noinspection GroovyAssignabilityCheck
//file:noinspection VulnerableLibrariesLocal
//file:noinspection GrDeprecatedAPIUsage
plugins {
id 'com.github.johnrengelman.shadow' version '7+'
}
setArchivesBaseName("HamsterCore-Bukkit")
evaluationDependsOn(':core-common')
@@ -18,7 +12,7 @@ dependencies {
implementation project(":core-common") transitive false
//noinspection GradlePackageUpdate
implementation "com.zaxxer:HikariCP:${HikariCP_version}"
//noinspection VulnerableLibrariesLocal
// https://mvnrepository.com/artifact/net.kyori/adventure-platform-bukkit
implementation "net.kyori:adventure-platform-bukkit:${adventure_version}" exclude group: 'org.jetbrains' exclude group: 'com.google.code.gson'
// https://mvnrepository.com/artifact/net.kyori/adventure-text-minimessage
implementation "net.kyori:adventure-text-minimessage:${adventure_serializer_version}" exclude group: 'org.jetbrains'
@@ -35,47 +29,3 @@ processResources {
expand "version": project.version
}
}
jar {
classifier = 'dev'
}
tasks.compileJava.dependsOn(":core-common:build")
shadowJar {
classifier = ''
dependencies {
exclude(dependency {
it.moduleGroup == 'com.google.code.gson'
})
}
relocate 'org.slf4j', 'cn.hamster3.mc.plugin.core.lib.slf4j'
relocate 'net.kyori', 'cn.hamster3.mc.plugin.core.lib.kyori'
relocate 'com.zaxxer.hikari', 'cn.hamster3.mc.plugin.core.lib.hikari'
relocate 'de.tr7zw.changeme.nbtapi', 'cn.hamster3.mc.plugin.core.lib.nbtapi'
relocate 'de.tr7zw.annotations', 'cn.hamster3.mc.plugin.core.lib.nbtapi.annotations'
destinationDir(getRootProject().buildDir)
}
tasks.build.dependsOn(shadowJar)
publishing {
publications {
shadow(MavenPublication) { publication ->
{
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", "")
}
}
}
}

View File

@@ -55,7 +55,7 @@ public class HamsterCorePlugin extends JavaPlugin {
.create();
CoreBukkitAPI.init();
logger.info("已初始化 CoreBukkitAPI.");
CoreMessage.init(this);
CoreMessage.init(getLogger(), getConfig().getConfigurationSection("messages"));
logger.info("已初始化语言文本.");
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms.");

View File

@@ -7,8 +7,10 @@ import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.TextReplacementConfig;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.logging.Logger;
public enum CoreMessage {
COMMAND_NOT_FOUND,
@@ -40,10 +42,9 @@ public enum CoreMessage {
private DisplayMessage message;
public static void init(@NotNull Plugin plugin) {
ConfigurationSection config = plugin.getConfig().getConfigurationSection("messages");
public static void init(@NotNull Logger logger, @Nullable ConfigurationSection config) {
if (config == null) {
plugin.getLogger().warning("加载消息失败: 配置文件中未找到 messages 节点!");
logger.warning("加载消息失败: 配置文件中未找到 messages 节点!");
return;
}
for (CoreMessage value : values()) {
@@ -54,13 +55,13 @@ public enum CoreMessage {
try {
value.message = CoreBukkitUtils.getDisplayMessage(section);
} catch (Exception e) {
plugin.getLogger().warning("加载消息设置 " + value.name() + " 时遇到了一个异常: ");
logger.warning("加载消息设置 " + value.name() + " 时遇到了一个异常: ");
e.printStackTrace();
}
}
}
public void show(CommandSender sender, TextReplacementConfig... replacement) {
public void show(@NotNull CommandSender sender, TextReplacementConfig... replacement) {
if (message == null) {
sender.sendMessage(name());
return;

View File

@@ -1,9 +1,3 @@
//file:noinspection GroovyAssignabilityCheck
//file:noinspection VulnerableLibrariesLocal
//file:noinspection GrDeprecatedAPIUsage
plugins {
id 'com.github.johnrengelman.shadow' version '7+'
}
setArchivesBaseName("HamsterCore-BungeeCord")
evaluationDependsOn(':core-common')
@@ -31,40 +25,3 @@ processResources {
expand "version": project.version
}
}
jar {
classifier = 'dev'
}
tasks.compileJava.dependsOn(":core-common:build")
shadowJar {
classifier = ''
relocate 'org.slf4j', 'cn.hamster3.mc.plugin.core.lib.slf4j'
relocate 'net.kyori', 'cn.hamster3.mc.plugin.core.lib.kyori'
relocate 'com.zaxxer.hikari', 'cn.hamster3.mc.plugin.core.lib.hikari'
destinationDir(getRootProject().buildDir)
}
tasks.build.dependsOn(shadowJar)
publishing {
publications {
shadow(MavenPublication) { publication ->
{
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", "")
}
}
}
}

View File

@@ -1,4 +1,3 @@
//file:noinspection GroovyAssignabilityCheck
setArchivesBaseName("HamsterCore-Common")
dependencies {
@@ -7,42 +6,16 @@ dependencies {
//noinspection VulnerableLibrariesLocal
compileOnly 'com.google.code.gson:gson:2.8.0'
// https://mvnrepository.com/artifact/net.kyori/adventure-api
compileOnly "net.kyori:adventure-api:${adventure_version}"
// https://mvnrepository.com/artifact/net.kyori/adventure-platform-api
compileOnly "net.kyori:adventure-platform-api:${adventure_version}"
implementation "net.kyori:adventure-platform-api:${adventure_version}" exclude group: 'org.jetbrains'
// https://mvnrepository.com/artifact/net.kyori/adventure-text-minimessage
compileOnly "net.kyori:adventure-text-minimessage:${adventure_serializer_version}"
implementation "net.kyori:adventure-text-minimessage:${adventure_serializer_version}" exclude group: 'org.jetbrains'
// https://mvnrepository.com/artifact/net.kyori/adventure-text-serializer-gson
compileOnly "net.kyori:adventure-text-serializer-gson:${adventure_serializer_version}"
implementation "net.kyori:adventure-text-serializer-gson:${adventure_serializer_version}" exclude group: 'org.jetbrains' exclude group: 'com.google.code.gson'
// https://mvnrepository.com/artifact/net.kyori/adventure-text-serializer-legacy
compileOnly "net.kyori:adventure-text-serializer-legacy:${adventure_serializer_version}"
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0'
implementation "net.kyori:adventure-text-serializer-legacy:${adventure_serializer_version}" exclude group: 'org.jetbrains'
}
test {
useJUnitPlatform()
}
publishing {
publications {
mavenJava(MavenPublication) {
from project.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", "")
}
}
}
}

View File

@@ -1,4 +1,4 @@
org.gradle.jvmargs=-Xmx2G
adventure_version=4.3.0
adventure_serializer_version=4.13.0
adventure_serializer_version=4.14.0
HikariCP_version=4.0.3