45 lines
876 B
Bash
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"
|