#!/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."
|