Maven Check Versions
Is a Python package designed for analyzing Maven POM files and managing dependencies. It checks the versions of dependencies in a project and identifies the latest available versions in Maven repositories. Developed for developers, this package simplifies dependency management in Maven-based projects. It is especially useful in CI/CD environments, where maintaining consistency and up-to-date dependencies is critical.
Features
- Dependency Analysis: Parses Maven POM files to analyze dependencies and plugins.
- Version Checking: Identifies outdated dependencies and checks versions against customizable thresholds.
- Artifact Search: Finds specific artifacts using
groupId:artifactId:versionformat. - Repository Support: Integrates with HTTP-based Maven repositories, including REST services.
- Module Processing: Processes nested modules in Maven projects.
- Caching: Caches results for faster rechecks.
- Logging: Provides configurable logging for detailed analysis.
- Command-Line Interface: Easily integrates into CI/CD pipelines.
Installation
You can install the tool via pip:
pip install maven_check_versions
Usage
Run the script directly from the command line:
python -m maven_check_versions --pom_file <path-to-pom.xml>
Example Commands:
-
Analyze a specific POM file:
python -m maven_check_versions --pom_file <path-to-pom.xml>
-
Search for a specific artifact:
python -m maven_check_versions --find_artifact com.example:my-lib:1.0
-
Enable CI mode to suppress prompts:
python -m maven_check_versions --ci_mode
Command-Line Arguments
General Options
| Parameter | Short | Description | Example |
|---|---|---|---|
--ci_mode |
-ci |
Enables CI (Continuous Integration) mode. Suppresses prompts and waits for user input. | --ci_mode |
--pom_file |
-pf |
Specifies the path to the Maven POM file to process. | --pom_file path/to/pom.xml |
--find_artifact |
-fa |
Searches for a specific artifact. Provide the artifact in groupId:artifactId:version format. |
--find_artifact com.example:lib:1.0 |
Cache Control
| Parameter | Short | Description | Example |
|---|---|---|---|
--cache_off |
-co |
Disables caching to force fresh dependency checks. | --cache_off |
--cache_file |
-cf |
Specifies a custom path for the cache file. | --cache_file my_cache.json |
--cache_time |
-cf |
Specifies the cache expiration time in seconds. | --cache_time 1800 |
Logging Options
| Parameter | Short | Description | Example |
|---|---|---|---|
--logfile_off |
-lfo |
Disables logging to a file. Logs will only be shown in the terminal. | --logfile_off |
--log_file |
-lf |
Specifies the path to a custom log file. | --log_file my_log.log |
Configuration Options
| Parameter | Short | Description | Example |
|---|---|---|---|
--config_file |
-cfg |
Specifies a custom configuration file for the script. | --config_file config.cfg |
Error Handling and Validation
| Parameter | Short | Description | Example |
|---|---|---|---|
--fail_mode |
-fm |
Enables "fail mode." The script will terminate if dependency versions exceed specified thresholds. | --fail_mode |
--fail_major |
-mjv |
Specifies the major version difference threshold for failure. | --fail_major 1 |
--fail_minor |
-mnv |
Specifies the minor version difference threshold for failure. | --fail_minor 2 |
Dependency Search and Processing
| Parameter | Short | Description | Example |
|---|---|---|---|
--search_plugins |
-sp |
Includes Maven plugins in the dependency search process. | --search_plugins |
--process_modules |
-sm |
Processes modules listed in the POM file. | --process_modules |
--show_skip |
-sk |
Logs dependencies that are skipped. | --show_skip |
--show_search |
-ss |
Logs information about search actions. | --show_search |
--empty_version |
-ev |
Allows processing of dependencies without a version specified. | --empty_version |
--show_invalid |
-si |
Logs information about invalid dependencies. | --show_invalid |
Authentication
| Parameter | Short | Description | Example |
|---|---|---|---|
--user |
-un |
Specifies a username for basic authentication when accessing repositories. | --user my_username |
--password |
-up |
Specifies a password for basic authentication when accessing repositories. | --password my_password |
Configuration
You can customize the tool’s behavior using a configuration file (maven_check_versions.cfg) or environment variables.
The following settings can be adjusted:
- SSL Verification: Enable or disable SSL verification for HTTP requests.
- Cache Preferences: Control cache duration and behavior.
- Repository Settings: Define base URLs, authentication, and paths for repositories.
- Logging Preferences: Specify log levels and file paths.
See maven_check_versions.cfg.dist for configuration file structure.
License
This project is licensed under the MIT License. See the LICENSE.txt file for more details.
Metadata
Release files for maven-check-versions 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| maven_check_versions-0.0.2.tar.gz | 13.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| maven_check_versions-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.3 kB
Release files / maven_check_versions-0.0.2.tar.gz
| Download URL | maven_check_versions-0.0.2.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a3cafc5b1c450ef3f1226c7a4f383aad2f4431d3af6c7178e18b98c416041e0
|
|
BLAKE2b-256 checksum How to use checksums |
950ae66332414d9261b0cdfccd7db7ca3d4a6e6a85d89bda055319ff433a5223
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.9
|
Release files / maven_check_versions-0.0.2-py3-none-any.whl
| Download URL | maven_check_versions-0.0.2-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed483e90fdd3337b22330c9eaabd8274005427d72ad1b5ab509dc95b2e6aedfe
|
|
BLAKE2b-256 checksum How to use checksums |
4cdb060cff01cbb63b2e60aff44fb1d56b27382fa6d2d4532f90790e9c7bff50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.9
|