Hi folks,
Concerned about a project being built and deployed with a version of one
dependency that another dependency has not been tested with, we are considering
developing a new plugin, but first I wanted to ask the community if there is
already something that does this, and if not get some pointers as to where to
look for the best ways to achieve the steps we want to take. Feedback about
pitfalls or easier ways to do this is also very welcome.
The main objective is to recompile the tests of dependencies using the artifact
versions that were selected for the project, and execute the tests against the
previously packaged classes. Assuming out test coverage is comprehensive, this
would alert us to problems that would be caused in one of our modules by
changing a version of an artifact that the module has not previously been
tested with.
The plugin would work something like this...
1. Capture all the artifacts that were selected for the test phase
2. Identify all the dependencies that match some provided groupId prefixes.
For each dependency...
a. check out the project from scm to a temp folder,
b. rewrite the pom, replacing all dependencies with the ones used for
the project
c. exec maven with a profile that would activate another plugin that
would do the following...
* after building the tests replace all the non-test classes
with the contents of the artifact's jar from the repo
* run all the tests
* report any failures back to the parent execution
d. remove the scm check out from the temp folder
Being pretty new to Maven, and never having written a plugin before (and not
being all that familiar with the plugins that already exist), if anyone could
point at other plugins that do some of the following so I can see how they work
it would be helpful...
1. Determine the SCM location of an artifact and check out the artifact into a
temp folder
2. Invoking a maven subprocess (currently assuming I would just use a
Runtime.getRuntime().exec call)
3. Reporting failures in the maven subprocesses back to the parent process
Thanks,
Keith.
CONFIDENTIALITY NOTICE: This message is intended only for the use and review
of the individual or entity to which it is addressed and may contain
information that is privileged and confidential. If the reader of this message
is not the intended recipient, or the employee or agent responsible for
delivering the message solely to the intended recipient, you are hereby
notified that any dissemination, distribution or copying of this communication
is strictly prohibited. If you have received this communication in error,
please notify sender immediately by telephone or return email. Thank you.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]