Files
2025-10-28 15:32:34 +01:00

45 lines
876 B
Bash

#!/usr/bin/env bash
set -e
OUT=jar
MAIN_CLASS=de.unitrier.st.uap.w25.tram.Main
JAR_NAME=tram.jar
LIB=lib
TMP=$OUT/tmp
# Clean and prepare
rm -rf "$OUT"
mkdir -p "$TMP"
# 1. Compile sources
if [ -d "$LIB" ]; then
javac -d "$TMP" -cp "$LIB/*" $(find src -name "*.java")
else
javac -d "$TMP" $(find src -name "*.java")
fi
# 2. Unpack dependency jars
if [ -d "$LIB" ]; then
for jar in "$LIB"/*.jar; do
[ -f "$jar" ] && jar xf "$jar" -C "$TMP"
done
fi
# 3. Copy resources (including log4j2.xml) into the JAR
if [ -d "resources" ]; then
cp -r resources/* "$TMP/"
fi
# 4. Create manifest
echo "Main-Class: $MAIN_CLASS" > "$TMP/MANIFEST.MF"
# 5. Package into single jar
jar cfm "$OUT/$JAR_NAME" "$TMP/MANIFEST.MF" -C "$TMP" .
# 6. Clean temporary files
rm -rf "$TMP"
echo "Built: $OUT/$JAR_NAME"
echo "Run with:"
echo " java -jar $OUT/$JAR_NAME"