tree: 473865db295019a0dc23cf5ffb5717f1e5d78178 [path history] [tgz]
  1. src/
  2. pom.xml
  3. README.md
pinot-dependency-verifier/README.md

Pinot Dependency Verifier

This module implements a custom Maven Enforcer plugin rule that validates dependency declarations in the Apache Pinot project. It enforces internal Dependency Management Guidelines by checking for hardcoded versions and misplaced dependencies.

Skipped Modules

To avoid circular resolution and redundant checks, the enforcer rule is skipped in these submodules:

  • pinot-plugins
  • pinot-connectors
  • pinot-integration-tests
  • pinot-tools
  • contrib
  • pinot-dependency-verifier

That means when you run the full project build, those modules will be excluded from dependency‐verifier validation.

Two-Phase Build Workflow

Maven resolves plugin dependencies before building reactor modules. This means it cannot build the verifier JAR and use it in the same build cycle. Therefore, any changes to the pinot-dependency-verifier module must follow a two-phase process:

Phase 1 - Build & Install the Verifier Module

From the repo root, build and install only pinot-dependency-verifier without triggering verification. This ensures the artifact is available in the local Maven repository:

mvn clean install \
  -pl pinot-dependency-verifier \
  -am \
  -DskipTests

Phase 2 – Full Reactor Build + Dependency Verifier

Run the full Pinot build with the Enforcer Plugin enabled to execute the custom rule:

   mvn clean verify \
      -Pbin-dist,dependency-verifier
      -DskipTests

Running the Plugin

To manually run the enforcer plugin without the customized rule:

mvn enforcer:enforce

To manually run it with the custom rule activated:

mvn enforcer:enforce -Pdependency-verifier