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]

Reply via email to