You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Keith Branton <kb...@overstock.com> on 2008/10/21 19:22:00 UTC

Advice on building a plugin

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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org