maven-druid-build · git:20260424.d50cf5a · 2026-04-24 · sha256 09f77d8e26d703f3
maven-druid-build git:20260424.d50cf5aA
Immutable. This exact content never changes and is served at /api/v1/blob/09f77d8e26d703f3.
--- name: maven-druid-build description: Building Apache Druid with Maven, managing memory constraints, and skipping verification checks. --- # Maven Build for Apache Druid ## Build Command Reference ### Full Build (from instructions) ```bash cd /root/druid mvn clean package \ -DskipTests \ -Dcheckstyle.skip=true \ -Dpmd.skip=true \ -Dforbiddenapis.skip=true \ -Dspotbugs.skip=true \ -Danimal.sniffer.skip=true \ -Denforcer.skip=true \ -Djacoco.skip=true \ -Ddependency-check.skip=true \ -pl '!web-console' \ -pl indexing-service \ -am ``` ## Flag Explanations | Flag | Purpose | |------|---------| | `clean` | Remove previous build artifacts | | `package` | Compile and package into JAR/WAR | | `-DskipTests` | Skip unit test execution | | `-Dcheckstyle.skip=true` | Skip code style checking | | `-Dpmd.skip=true` | Skip PMD analysis | | `-Dforbiddenapis.skip=true` | Skip forbidden API checking | | `-Dspotbugs.skip=true` | Skip SpotBugs (FindBugs) analysis | | `-Danimal.sniffer.skip=true` | Skip JDK version compatibility checks | | `-Denforcer.skip=true` | Skip Maven Enforcer rules | | `-Djacoco.skip=true` | Skip code coverage analysis | | `-Ddependency-check.skip=true` | Skip OWASP dependency checking | | `-pl '!web-console'` | Exclude web-console module (memory constraint) | | `-pl indexing-service` | Include indexing-service module | | `-am` | Also make dependencies of selected projects | ## Memory Management ### Memory Issues If you encounter OOM (Out of Memory) errors: ```bash # Increase heap size export MAVEN_OPTS="-Xmx2g -Xms1g" # Very aggressive heap limit export MAVEN_OPTS="-Xmx1g -Xms512m" ``` ### Parallel Builds To speed up builds with multiple cores: ```bash mvn clean package -T 1C # 1 thread per core ``` ## Output Artifacts After successful build: ``` druid/indexing-service/target/druid-indexing-service-0.20.0-SNAPSHOT.jar druid/distribution/target/apache-druid-0.20.0-SNAPSHOT/lib/ ``` ## Verifying Build ```bash # Check if JAR was created ls -la indexing-service/target/*.jar # Check build log for errors tail -100 build.log # Verify specific file was included jar tf indexing-service/target/*.jar | grep "JavaScriptFilter" ``` ## Maven Troubleshooting ### Module Not Found ```bash # Verify module exists ls -la indexing-service/pom.xml # Rebuild parent projects mvn clean install -pl '!web-console' ``` ### Compilation Errors ```bash # Detailed error output mvn clean package -X 2>&1 | tail -50 # Compile only (no packaging) mvn clean compile ``` ## Selective Compilation ```bash # Build specific module and dependencies mvn clean package -pl indexing-service -am # Build without tests but with other checks mvn clean package -DskipTests # Minimal build for testing mvn clean package -DskipTests -Denforcer.skip=true ```