Dear all,

The existing clover plugin forks off its own lifecycle so it can run its
instrumentInternal mojo in a new lifecycle and so it can try and prevent any
test failures from breaking the forked build: 

<lifecycles>
  <lifecycle>
    <id>clover</id>
    <phases>
      <phase>
        <id>validate</id>
        <executions>
          <execution>
            <configuration>
             
<cloverOutputDirectory>${project.build.directory}/clover</cloverOutputDirectory>
             
<cloverDatabase>${project.build.directory}/clover/clover.db</cloverDatabase>
            </configuration>
            <goals>
              <goal>instrumentInternal</goal>
            </goals>
          </execution>
        </executions>
      </phase>

      <!-- This below is a HACK. It tries to prevent the build from stopping
in
           case of build failures as we could still like to generate Clover
           reports even if it happens. The Clover plugin cannot know about
all
           plugins that can execute and fail the build and moreover which
can be
           bound to any phase by the user. A better solution would be for
Maven
           to have a flag that says "continue the build even in case of
           failures". -->
      <phase>
        <id>test</id>
        <configuration>
          <testFailureIgnore>true</testFailureIgnore>
        </configuration>
      </phase>
      <phase>
        <id>integration-test</id>
        <configuration>
          <testFailureIgnore>true</testFailureIgnore>
        </configuration>
      </phase>

    </phases>
  </lifecycle>
</lifecycles>


However with this approach we find you get big problems when the build has
got other plugins bound to it, especially code generation plugins and code
checking plugins.

So what we would like to do is programmatically or otherwise remove certain
plugins from this forked lifecycle. I guess programmatically might not be
possible as we don't get a chance to run any code before this forked
lifecycle is run but can we do it via changing the lifecycle itself? Bear in
mind we cant ask the other plugins not to run via configuration parameters
are we don't own the code for them and the majority to honour a 'skip'
parameter anyway.

I think we may have to muck around with the components.xml but is there a
way to use a different component mapping without it being led by the
packaging type? 

Has anyone got any bright ideas on how we can crack this problem?

The goal is to just run clover:instrumentInternal, resources:resources,
compiler:compile and surefire:test and nothing much else.

Kind regards,

John
-- 
View this message in context: 
http://www.nabble.com/Removing-plugins-from-a-lifecycle%2C-programmatically-or-otherwise-tf4467756s177.html#a12739008
Sent from the Maven Developers mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to