Devolutions / Devolutions/UniGetUI

[FEATURE REQUEST] Maven Package Manager Support

Open
#4,129 4 comments 0 reactions 1 assignee Claimed by @marticliment View on GitHub
needs-further-study new-feature
Dominant language
C#
Stars
26.1k
Forks
924
Avg merge
15h 1m
Merged PRs (30d)
55

Description

### Please confirm these before moving forward.

- [x] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- [x] This proposal is a completely new feature. If you want to suggest an improvement or an enhancement, please use [this template](https://github.com/marticliment/WingetUI/issues/new?assignees=marticliment&labels=enhancement&projects=&template=enhancement-improvement.yml&title=%5BENHANCEMENT%5D+%28Enter+your+description+here%29).

### Describe the new feature

[`Maven`](https://maven.apache.org) is the most commonly used package manager for Java libraries, just like `vcpkg` for C++ and `cargo` for Rust. The last two are already supported in `UniGetUI`. Was `maven` already considered or can it be implemented maybe similar to Python `pip` showing which library has a newer version available? The difference between `pip` and `maven` is that you specify which version of a library you want to use in the `pom.xml` file on a project basis and the used libraries aren't automatically updated to the latest version, unless the `pom.xml` file specifies it accordinly with e.g. `LATEST` as the version etc.
`Maven` will also automatically update dependencies when using `LATEST` as the version when building a project which however is considered bad practice since always using latest library versions can cause unintended side-effects from a library being updated without the developer's knowledge and somehow suddenly behaving differently.

### Describe how this new feature could help users

It could help automate downloading the latest package versions in the `.m2` folder/repository. `UniGetUI` could show users of `maven` packages if there's an update available in an automated way for each available library package inside the `.m2` folder. After seeing which packages have updates, a developer can then put the new version numbers into the `pom.xml` file of Java projects (manually) to upgrade them respectively for each project. [`Maven` has a command to check for updated versions](https://www.mojohaus.org/versions/versions-maven-plugin/examples/display-dependency-updates.html) but it seems to only be usable on a per project basis, not globally. Also, this command can be slow if there are many transitive dependencies, e.g. when using bigger frameworks.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.