From 590b77b84e07c6608d4d0eae03fd8b5f0900ada3 Mon Sep 17 00:00:00 2001 From: Ricardo Costa Date: Thu, 14 May 2026 14:30:04 +0100 Subject: [PATCH] Update Run Script --- CONTRIBUTING.md | 1 + README.md | 1 + liquidjava | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6fb8cb1ae..785a83242 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,6 +26,7 @@ Verify a single file from the CLI: ./liquidjava path/to/File.java ``` +The launcher recompiles `liquidjava-api` and `liquidjava-verifier` only when local sources or Maven files have changed. Code formatting runs automatically via `formatter-maven-plugin` during the `validate` phase. ## Release diff --git a/README.md b/README.md index fab87e1d2..b4d61965d 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ mvn exec:java -pl liquidjava-verifier -Dexec.mainClass="liquidjava.api.CommandLi ``` If you're on Linux/macOS, you can use the `liquidjava` script (from the repository root) to simplify the process. +The script recompiles the verifier only when local sources or Maven files have changed. **Test a correct case**: ```bash diff --git a/liquidjava b/liquidjava index 003237fcb..e71783ce3 100755 --- a/liquidjava +++ b/liquidjava @@ -1,4 +1,20 @@ #!/bin/bash +set -e + +cd "$(dirname "$0")" + +MARKER="liquidjava-verifier/target/.liquidjava-last-compile" + +if [ ! -d liquidjava-api/target/classes ] || \ + [ ! -d liquidjava-verifier/target/classes ] || \ + [ ! -f "$MARKER" ] || \ + find pom.xml liquidjava-api/pom.xml liquidjava-api/src/main/java \ + liquidjava-verifier/pom.xml liquidjava-verifier/src/main/java liquidjava-verifier/src/main/antlr4 \ + -newer "$MARKER" -print -quit | grep -q .; then + mvn compile -pl liquidjava-verifier -am -Dmaven.compiler.useIncrementalCompilation=false + touch "$MARKER" +fi + mvn exec:java -pl liquidjava-verifier \ -Dexec.mainClass="liquidjava.api.CommandLineLauncher" \ -Dexec.args="$*" \ No newline at end of file