commit | 4dbab72195c13cc63d20bbceaadb3d86d5c55b14 | [log] [tgz] |
---|---|---|
author | Tamas Cservenak <tamas@cservenak.net> | Tue Jul 12 15:11:07 2022 +0200 |
committer | GitHub <noreply@github.com> | Tue Jul 12 15:11:07 2022 +0200 |
tree | 254ca00a737d19b21624e24882a330a4f6e7d941 | |
parent | 9fa9fd5298023746eae807a20ca90e972a4ef34d [diff] |
[MINSTALL-177] Streamline the plugin (#32) Original plugin made hoops and loops, instead to perform what it needed to perform. Partly to blame this was unfinished state of MAT API (it was able to install project only). Installing project is needed in InstallMojo, but InstallFileMojo was forced to make hoops and loops due this, as it was passed one file (and maybe pomFile), and it was forced to create "fake" project, decorate and fake setup it with all whistle and bells, only to get it via MAT to resolver that would "decompose" it back into set of artifacts needing a deploy. So it went this file-artifact-project-artifact route, that made all the logic fragile and overly complicated. This PR completely reworks m-install-p making it (almost trivially) simple: it does what it needs to do, without any fuss, and does it in streamlined way: InstallMojo will create a list of artifacts out of project and pass it to repository system for deploy, while InstallFileMojo literally prepares just a deployment request, nothing more. No fuss, no magic, no fake project building etc. Note: the code in mojos may or may not need to be reusable, but definitely smells like some "Maven API-ish thing". Problems: InstallFileMojo implicitly implemented ID validation (thru fake project building), and it revealed the problem that Maven ID (groupId, artifactId) and version validation is deeply buried into maven-model-builder and is NOT reusable at all, hence a light copy of logic (rules for ID allowed characters and version forbidden characters) are copied over here.
You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to the open source community. Before you dig right into the code, there are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
We accept Pull Requests via GitHub. The developer mailing list is the main channel of communication for contributors.
There are some guidelines which will make applying PRs easier for us:
git diff --check
before committing.[MINSTALL-XXX] - Subject of the JIRA Ticket Optional supplemental description.
mvn -Prun-its verify
to assure nothing else was accidentally broken.If you plan to contribute on a regular basis, please consider filing a contributor license agreement.
For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA. In this case, it is appropriate to start the first line of a commit with ‘(doc)’ instead of a ticket number.