This is a tool to lint Quarkus extensions for compliance with Quarkus standards. It's based on the Quarkus Extension Structure ADR.
Build the linter:
./mvnw clean package -DskipTestsIt's packaged as an über JAR in target/quarkus-extension-linter-<version>-runner.jar.
Run the linter against a Quarkus extension:
java -jar target/quarkus-extension-linter-<version>-runner.jar --path=<path-to-extension-root>The --path argument should point to the root directory of the Quarkus extension you want to lint.
The lint generates a report in Markdown format in the target/lint-report.md file of the extension being checked.
- Verify that build steps are in the deployment module.
- Check the presence of
Automatic-Module-Namein the manifest of runtime, deployment, and SPI modules. - Verify that the deployment module depends on the runtime module.
- Check that GraalVM substitutions and features are in the runtime module in the appropriate package.
- Ensure the structure (packages) of the modules.
- Ensure that metadata file is present and the status is valid.
To add a new check, create a class that extends the io.quarkus.extension.linter.rules.DefaultRule interface. The class should override the check method to perform the specific checks you want.