Adding the plugin won't be enough, you'll have explicitly name the mojo in
an <execution>. What defaultPhase does is that you don't have to specify a
<phase> in the <execution>.
Actually, you can even list all mojos in the same <execution> even if
they're bound to different default phases:
<plugin>
<groupId>…</groupId>
<artifactId>…</artifactId>
<version>…</version>
<executions>
<execution>
<goals>
<goal>mojo1</goal>
<goal>mojo2</goal>
<goal>mojo3</goal>
</goals>
</execution>
</executions>
</plugin>
If you'd want the mojo to be automatically bound without even mentioning
it, you'd have to use a specific lifecycle, i.e. a specific packaging;
you'd then add the plugin with <extensions>true</extensions> and use your
custom <packaging>, and your custom lifecycle would then apply.
On Tue, Feb 12, 2019 at 9:40 AM Dirk Olmes <[email protected]> wrote:
> Hi,
>
> I'm creating a Maven plugin using Java Annotations and I'd like my
> plugin to be bound to a default lifecycle phase so I don't have to
> explicitly bind it to a phase in my regular projects.
>
> So far I use
>
> @Mojo(name = "generate", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
> public class MyMojo extends AbstractMojo {}
>
> But that doesn't seem to be enough: just listing the mojo in the build
> section of a test project does not execute the plugin.
>
> My google fu fails me! Help!
>
> -dirk
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>