40 lines
758 B
Bash
40 lines
758 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. Create manifest
|
|
echo "Main-Class: $MAIN_CLASS" > "$TMP/MANIFEST.MF"
|
|
|
|
# 4. Package into single jar
|
|
jar cfm "$OUT/$JAR_NAME" "$TMP/MANIFEST.MF" -C "$TMP" .
|
|
|
|
# 5. Clean temporary files
|
|
rm -rf "$TMP"
|
|
|
|
echo "Built: $OUT/$JAR_NAME"
|
|
echo "Run with:"
|
|
echo " java -jar $OUT/$JAR_NAME"
|