#!/usr/bin/env bash # Build de mgt-manuel-module (mgt-manuel-core -> mgt-manuel-studio). # # Usage : # ./build.sh # build incremental (compile + install) # ./build.sh clean # mvn clean install (full rebuild) # ./build.sh --online # autorise le telechargement des dependances # # Pre-requis : # - SDKMAN installe avec JDK 17 (ex. 17.0.10-tem) # - mode offline par defaut (-o) : tout doit etre deja dans ~/.m2 set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # --- JDK 17 via SDKMAN ------------------------------------------------------- if [ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]; then set +u # shellcheck disable=SC1091 source "$HOME/.sdkman/bin/sdkman-init.sh" if command -v sdk >/dev/null 2>&1; then sdk use java 17.0.10-tem >/dev/null || true fi set -u fi JAVA_VER="$(java -version 2>&1 | head -1 || echo "java introuvable")" echo "[build] JDK : $JAVA_VER" # --- Parametrage ------------------------------------------------------------- GOAL="install" CLEAN="" MVN_FLAGS=("-o") for arg in "$@"; do case "$arg" in clean) CLEAN="clean" ;; install) GOAL="install" ;; --online) tmp=(); for f in "${MVN_FLAGS[@]}"; do [ "$f" = "-o" ] || tmp+=("$f"); done MVN_FLAGS=("${tmp[@]:-}") ;; -h|--help) sed -n '2,11p' "$0" exit 0 ;; *) echo "[build] argument inconnu : $arg" >&2 exit 2 ;; esac done echo "[build] goal : $CLEAN $GOAL" echo "[build] flags : ${MVN_FLAGS[*]:-aucun}" mvn ${MVN_FLAGS[@]+"${MVN_FLAGS[@]}"} $CLEAN "$GOAL" echo echo "[build] OK - mgt-manuel-core et mgt-manuel-studio sont construits."