# Java Builder — CI Image Pre-baked build environment for KollectAI-ETL backend and plugin CI jobs. ## What's included - Java 21 (Eclipse Temurin) - Maven 3.9.9 - Pre-cached Maven dependencies (Spring Boot, Flink, MyBatis, etc.) - Pre-installed `plugin-api` in local Maven repo - OWASP NVD database snapshot - Node.js + pnpm (via corepack) - [buf](https://buf.build) CLI — for `buf lint` parity with pre-push - ORAS CLI (Harbor artifact uploads) - git, jq, curl > **Note**: Backend Java protobuf codegen lives in the Maven build via > `protobuf-maven-plugin`, not buf — so this image deliberately omits > protoc plugins. For TypeScript proto codegen and frontend CI jobs use > the [`frontend-builder`](../frontend-builder/) image. ## Build ```bash docker build -t 192.168.1.72/kollect-tools/ci/java-builder:latest ci/java-builder/ docker push 192.168.1.72/kollect-tools/ci/java-builder:latest ``` ### Build args | Arg | Default | Description | |-----|---------|-------------| | `JAVA_VERSION` | `25` | Eclipse Temurin JDK version | | `MAVEN_VERSION` | `3.9.14` | Maven version | | `OWASP_DC_VERSION` | `12.1.1` | OWASP Dependency-Check version | | `NODE_MAJOR` | `24` | Node.js major version | | `PNPM_VERSION` | `10.15.0` | pnpm version (corepack-activated) | | `BUF_VERSION` | `1.55.0` | buf CLI version | | `ORAS_VERSION` | `1.2.2` | ORAS CLI version | | `NVD_API_KEY` | (empty) | Optional NVD API key — speeds up the OWASP database update during image build | ## Usage in CI ```yaml jobs: test: runs-on: ubuntu-latest container: image: 192.168.1.72/kollect-tools/ci/java-builder:latest steps: - uses: actions/checkout@v6 - run: ./mvnw -f backend/etl/pom.xml test -Dgroups=unit -q ``` ## Maintenance Rebuild weekly to keep the OWASP NVD database fresh: ```bash docker build --no-cache -t 192.168.1.72/kollect-tools/ci/java-builder:latest ci/java-builder/ docker push 192.168.1.72/kollect-tools/ci/java-builder:latest ``` When `pom.xml` files change (new dependencies), rebuild to update the cached deps layer.