Skip to content

Commit 1f5aacd

Browse files
committed
feat: 添加用于构建和发布项目的 release.sh 脚本
该脚本用于自动化编译 Java 11 项目、打包成 JAR 文件并准备发布目录 包含彩色 ASCII 标题显示和进度动画等友好交互功能 #1
1 parent a14a4eb commit 1f5aacd

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

release.sh

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#!/bin/bash
2+
3+
APP_NAME="ExploitDB"
4+
MAIN_CLASS="xin.ctkqiang.Main"
5+
VERSION="v1.0.0"
6+
RELEASE_DIR="releases/${VERSION}"
7+
OUT_DIR="out"
8+
9+
# 彩色 ASCII 标题(纯 echo)
10+
ascii_banner() {
11+
echo " _____ _ _ _ _ _ "
12+
echo " | ____|_ ___ __ | | ___ (_) |_(_)___| |_ ___ _ __ "
13+
echo " | _| \ \/ / '_ \| |/ _ \| | __| / __| __/ _ \| '__|"
14+
echo " | |___ > <| |_) | | (_) | | |_| \__ \ || (_) | | "
15+
echo " |_____/_/\_\ .__/|_|\___/|_|\__|_|___/\__\___/|_| "
16+
echo " |_| "
17+
}
18+
19+
# 动画函数
20+
wait_animation() {
21+
local MESSAGE=$1
22+
local DOTS=""
23+
24+
echo "$MESSAGE"
25+
for i in 1 2 3; do
26+
DOTS="$DOTS."
27+
echo "$DOTS"
28+
sleep 0.3
29+
done
30+
}
31+
32+
# 步骤开始
33+
ascii_banner
34+
wait_animation "🌸 灵儿正在为你编译 Java 11 项目"
35+
36+
# 清理旧文件
37+
rm -rf $OUT_DIR $RELEASE_DIR
38+
mkdir -p $OUT_DIR
39+
40+
# 编译
41+
find ./src -name "*.java" >sources.txt
42+
javac -source 11 -target 11 -d $OUT_DIR @sources.txt
43+
44+
if [ $? -ne 0 ]; then
45+
echo "❌ 编译失败了!检查一下语法哦~"
46+
exit 1
47+
fi
48+
49+
wait_animation "🎀 编译完成,开始打包成 JAR"
50+
51+
# 创建 JAR 包
52+
JAR_NAME="${APP_NAME}-${VERSION}.jar"
53+
jar cfe $JAR_NAME $MAIN_CLASS -C $OUT_DIR .
54+
55+
if [ $? -ne 0 ]; then
56+
echo "❌ 打包失败了!可能是入口类路径设置错了~"
57+
exit 1
58+
fi
59+
60+
# 准备 Release 目录
61+
mkdir -p $RELEASE_DIR
62+
mv $JAR_NAME $RELEASE_DIR/
63+
64+
wait_animation "📦 发布结构整理完成"
65+
66+
# Release Summary
67+
echo ""
68+
echo "🎉 Release 打包成功!少女完成度 100%~"
69+
echo "📁 输出目录: $RELEASE_DIR"
70+
echo "📦 文件名: $JAR_NAME"
71+
echo "🔮 Java 版本: $(java -version 2>&1 | head -n 1)"
72+
echo ""
73+
echo "下一步:上传 GitHub Release 页面吧 💖"

0 commit comments

Comments
 (0)