On Fri, Apr 29, 2011 at 5:05 PM, Ron Wheeler <[email protected] > wrote:
> On 28/04/2011 5:35 PM, Justin Lee wrote: > >> I have a huge tree of ant based projects i'm trying to convert to maven. >> I >> have the mechanics worked about except for a minor hitch: I need the test >> phase to be the last one executed. Since all of this code is test code >> there will be no artifacts to install, no deployments run. But I need to, >> say, generate the war files before surefire kicks off and runs the test. >> How can I do that? Could I bind the surefire plugin to the install phase >> instead? >> >> Try to identify the "Maven way" to do what you are doing. > Maven is not Ant. > > Don't be tempted to invent something new unless you are sure that no one > else has ever tried to develop an application like yours. > There is a Maven Best Practice for almost every situation and most likely > thousands of people have already set up a project like yours. It somethings > takes a bit of digging to find out the "right" way. > > > Ron > Another option which I've found useful is separate the tests into a different module from the code being tested. This is quite straight-forward, and you can use Maven dependencies to ensure the tests are running against the right version of the WAR file. So, you'd have the original module that builds the WAR file (and whatever appropriate Unit-level tests remaining in this module... any tests that don't require a packaged and/or deployed WAR file), and a new module which contains only those tests that require the WAR file. I do this with my Selenium tests. This is a nice Maven-way of doing it, ensuring I don't run my Selenium tests if the WAR doesn't build. Just another thought. :) Thanks, Ed
