java-1.8-dredd
Java 1.8+ language plugin for semver-dredd.
Installation
# Install via the core package extra
pip install "semver-dredd[java]"
# Or install the plugin distribution directly
pip install java-1.8-dredd
Or install from local path (development):
pip install ./plugins/java-1.8-dredd
Requirements
- Python 3.10+
- semver-dredd >= 1.0.20260704001
- JDK 1.8+ installed (both
javacandjavamust be in PATH)
Usage
Once installed, the plugin is automatically discovered by semver-dredd:
# List plugins to verify installation
semver-dredd plugin list
semver-dredd plugin info java
# Generate snapshot for a Java source directory
semver-dredd snapshot --plugin java --path ./src/main/java --version 1.0.0
# Or use the managed init/status/bake workflow
semver-dredd init ./src/main/java --plugin java --version 1.0.0
semver-dredd status ./src/main/java --plugin java --details
semver-dredd bake ./src/main/java --plugin java
How it works
This plugin bundles a simple Java parser that uses regex-based extraction to identify:
- Public classes and interfaces
- Public/protected fields with types
- Public/protected methods with signatures
- Public static methods are also exposed as package-level functions
The parser is compiled on-the-fly using javac and runs with the bundled SnakeYAML library.
Note: This is a simple regex-based parser suitable for straightforward Java code. For complex codebases, a proper Java AST parser (like JavaParser) would be recommended.
Scope: include / exclude
include and exclude items are Java package prefixes (not glob syntax),
matched recursively against the fully package-qualified class/function names
the parser produces:
include: [com.example.api]
exclude: [com.example.api.internal]
- Empty
include(or omitted) analyzes the whole parsed public API under--path, exactly as without scope. - A non-empty
includeswitches to allow-list mode: only classes/functions under the listed package prefixes (and nested sub-packages) are kept. excludeis applied afterincludeand supports a trailing*for non-recursive (single package level) exclusion, e.g.com.example.api.internal*excludes only that exact package, not deeper nested packages under it.includematching nothing produces an empty snapshot API (logged as a warning) rather than falling back to no-scope behavior.
Metadata
Release files for java-1.8-dredd 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| java_1_8_dredd-1.1.0.tar.gz | 306.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| java_1_8_dredd-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 611.9 kB
Release files / java_1_8_dredd-1.1.0.tar.gz
| Download URL | java_1_8_dredd-1.1.0.tar.gz |
|---|---|
| Size | 306.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f23aac887169ee48d880f4d0d67e381d109f8d87cb8cf812f810ddc7842767d6
|
|
BLAKE2b-256 checksum How to use checksums |
afefe45ea8c0be11198ec6916264ed5ad542e379ddbc8af22bbb8e2e1d57f952
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.19
|
Release files / java_1_8_dredd-1.1.0-py3-none-any.whl
| Download URL | java_1_8_dredd-1.1.0-py3-none-any.whl |
|---|---|
| Size | 305.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
815768df94331bb443e711fad02391a5d758088f72d9623864609e03639664f1
|
|
BLAKE2b-256 checksum How to use checksums |
bea3005c53381547ace4858a2f5b67d58c97cd6ed379c9e03a2cc95b94e588df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.19
|