Maven Settings Profile Switcher
Project description
MSPS - Maven Settings Profile Switcher
MSPS is a user-friendly tool that simplifies switching between various Maven settings profiles.
The problem
Profiles let you set up repositories or servers for each project or environment, streamlining your workflow and keeping your workspace clean. You can set up different settings for personal coding, testing new tools, and work. However, there are a few settings, like mirror configurations, that can't be tucked away in profiles.
This means if you need to switch between a private mirror in one environment and the Maven Central in another, you'll need to make those adjustments directly in the settings.xml file itself, or you might need to replace the entire file. This can be cumbersome, especially when managing many profiles and switching between them frequently.
:hammer: Requirements
- Python 3.10 or later
[!NOTE] Developed and tested on Linux (Ubuntu); may also work on macOS.
:floppy_disk: Installation
pip install msps
:gear: Configuration
Maven settings profiles
The tool expects the Maven settings profiles to be stored in the Maven home directory.
MSPS first checks the M2_HOME
environment variable to identify the Maven home directory. If this variable is not set, it searches for the .m2
directory within the user's home directory.
The profiles should be named in the following format:
settings__profile_name.xml
:wrench: Usage
msps <command> [profile]
Commands
switch
- Switch to the next available profile or the specified profile.list
- List available profiles.
Profile
- The name of the profile to switch to.
:man_mechanic: Examples
Unspecified profile switch
The tool will automatically switch to the next available profile.
msps switch
╭──────────── Maven Settings Profile Switcher ────────────╮
│ │
│ Profile changed from current_profile to next_profile. │
│ │
╰─────────────────────────────────────────────────────────╯
Switch to profile
The specified profile will be activated.
msps switch work
╭───────────── Maven Settings Profile Switcher ──────────────╮
│ │
│ M2_HOME: /home/testuser/.m2/ │
│ Available settings profiles: │
│ - personal (/home/testuser/.m2/settings__personal.xml) │
│ - work (/home/testuser/.m2/settings__work.xml) │
│ Profile changed from personal to work. │
│ │
╰────────────────────────────────────────────────────────────╯
Switch to non-existent profile
No changes will be made if the specified profile is not found.
msps switch target_profile
╭───────────── Maven Settings Profile Switcher ──────────────╮
│ │
│ Missing profile: target_profile │
│ │
│ M2_HOME: /home/testuser/.m2/ │
│ Available settings profiles: │
│ - personal (/home/testuser/.m2/settings__personal.xml) │
│ - work (/home/testuser/.m2/settings__work.xml) │
│ No changes were made. │
│ │
╰────────────────────────────────────────────────────────────╯
List available profiles
msps list
╭───────────── Maven Settings Profile Switcher ──────────────╮
│ │
│ Available settings profiles: │
│ - personal (/home/testuser/.m2/settings__personal.xml) │
│ - work (/home/testuser/.m2/settings__work.xml) │
│ │
╰────────────────────────────────────────────────────────────╯
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file msps-1.0.2.tar.gz
.
File metadata
- Download URL: msps-1.0.2.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad61158feda9482572dabe1c274363aad4147e4144ccf7d9f54b18cf4eebec7e |
|
MD5 | f5a0986eb17ac038454a3634498eda77 |
|
BLAKE2b-256 | bc0d7db3241df9d6f1a0bbd4ede913f2ac573990f75a5252b0f23c2e09b7fb66 |
File details
Details for the file msps-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: msps-1.0.2-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 525519ec5e843329e9c02ac1a580936d7353778ad163d0f8fcf8e4ed9b1cd779 |
|
MD5 | 1fa0803deeeaa00262a42e28b8a85b6d |
|
BLAKE2b-256 | 0b436104d9a3a1a70197353e34f545a061c069294d13504c68bec48b3154742e |