1
0
Fork 0
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

102 Zeilen
2.2 KiB
Bash

#!/bin/bash
# Build script for DungeonGenerator
# Usage: ./build.sh [clean|jar|run]
set -e
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BUILD_DIR="$PROJECT_DIR/build/classes"
JAR_FILE="$PROJECT_DIR/DungeonGenerator.jar"
LIB_DIR="$PROJECT_DIR/lib"
SRC_DIR="$PROJECT_DIR/src"
RESOURCES_DIR="$PROJECT_DIR/resources"
# All library JARs
LIBS=$(find "$LIB_DIR" -name "*.jar" | tr '\n' ':')
clean() {
echo "Cleaning build directory..."
rm -rf "$PROJECT_DIR/build"
rm -f "$JAR_FILE"
rm -f "$PROJECT_DIR/sources.txt"
echo "Clean complete."
}
compile() {
echo "Compiling sources..."
mkdir -p "$BUILD_DIR"
# Find all Java files
find "$SRC_DIR" -name "*.java" > "$PROJECT_DIR/sources.txt"
# Compile
javac -cp "$LIBS" -d "$BUILD_DIR" @"$PROJECT_DIR/sources.txt"
# Copy resources
cp -r "$RESOURCES_DIR"/* "$BUILD_DIR/" 2>/dev/null || true
cp "$SRC_DIR/version.properties" "$BUILD_DIR/" 2>/dev/null || true
echo "Compilation complete."
}
create_jar() {
compile
echo "Creating JAR..."
mkdir -p "$BUILD_DIR/META-INF"
# Create manifest
LIB_CLASSPATH=$(find "$LIB_DIR" -name "*.jar" -exec basename {} \; | sed 's/^/lib\//' | tr '\n' ' ')
cat > "$BUILD_DIR/META-INF/MANIFEST.MF" << EOF
Manifest-Version: 1.0
Main-Class: eu.smoser.dungeongenerator.main.DungeonGeneratorUI
Class-Path: $LIB_CLASSPATH
EOF
# Create JAR
cd "$BUILD_DIR"
jar cfm "$JAR_FILE" META-INF/MANIFEST.MF .
cd "$PROJECT_DIR"
echo "JAR created: $JAR_FILE"
}
run_app() {
if [ ! -f "$JAR_FILE" ]; then
create_jar
fi
echo "Running DungeonGenerator..."
java -jar "$JAR_FILE"
}
# Main
case "${1:-jar}" in
clean)
clean
;;
compile)
compile
;;
jar)
create_jar
;;
run)
run_app
;;
all)
clean
create_jar
;;
*)
echo "Usage: $0 [clean|compile|jar|run|all]"
echo " clean - Remove build artifacts"
echo " compile - Compile Java sources"
echo " jar - Create executable JAR (default)"
echo " run - Build and run the application"
echo " all - Clean and build JAR"
exit 1
;;
esac