Today , while working i noticed that because of the cobertura plugin all our unit test in the application were running twice , once for the test phase and another one for the cobertura phase. After some searching i found that the cobertura plugin has to instrument the byte code of the classes and hence needs to run them all over again to achieve that. Isn’t that frustrating , this means that the build time of our app suddenly doubles because we are using cobertura. Its a known issue to the cobertura guys and is also raised as an issue with them http://jira.codehaus.org/browse/MCOBERTURA-83 since last 4 years , huh. The only solution we could find was not to run the cobertura tasks with the normal clean install , and run it when we pass some parameter to be true. The only downside of this refactoring was that now people will have to run the mvn clean install -Druncobertura=true before committing to check if their test covers everything or not .