diff --git a/ci/install-private-maven.sh b/ci/install-private-maven.sh index fb68007..52354dd 100755 --- a/ci/install-private-maven.sh +++ b/ci/install-private-maven.sh @@ -4,12 +4,33 @@ set -euo pipefail ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" MAVEN_REPO_LOCAL="${MAVEN_REPO_LOCAL:-${HOME}/.m2/repository}" PRIVATE_ROOT="${ROOT_DIR}/maven_private" +TMP_DIR="$(mktemp -d)" +INSTALL_POM="${TMP_DIR}/pom.xml" + +trap 'rm -rf "${TMP_DIR}"' EXIT if [ ! -d "${PRIVATE_ROOT}" ]; then echo "missing private maven directory: ${PRIVATE_ROOT}" >&2 exit 1 fi +mkdir -p "${MAVEN_REPO_LOCAL}" + +cat > "${INSTALL_POM}" <<'EOF' + + 4.0.0 + local.private + install-private-maven + 1.0.0 + pom + +EOF + +# Remove cached negative lookups so Maven retries once the private artifacts are installed. +find "${MAVEN_REPO_LOCAL}/com/red/circle" -type f -name '*.lastUpdated' -delete 2>/dev/null || true + find "${PRIVATE_ROOT}" -mindepth 2 -maxdepth 2 -type d | sort | while read -r version_dir; do pom_file="$(find "${version_dir}" -maxdepth 1 -type f -name '*.pom' | sort | head -1)" if [ -z "${pom_file}" ]; then @@ -18,13 +39,13 @@ find "${PRIVATE_ROOT}" -mindepth 2 -maxdepth 2 -type d | sort | while read -r ve jar_file="$(find "${version_dir}" -maxdepth 1 -type f -name '*.jar' ! -name 'original-*' | sort | head -1 || true)" if [ -n "${jar_file}" ]; then - mvn -Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \ + mvn -B -f "${INSTALL_POM}" -Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \ install:install-file \ -DpomFile="${pom_file}" \ -Dfile="${jar_file}" \ -DgeneratePom=false else - mvn -Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \ + mvn -B -f "${INSTALL_POM}" -Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \ install:install-file \ -DpomFile="${pom_file}" \ -Dfile="${pom_file}" \