notice:@Component we're using in a Mojo is from Maven Plugin Tools org.apache.maven.plugins.annotations.Component [1]
it's different from @Component from Plexus, which is org.codehaus.plexus.component.annotations.Component [2] Using the same class name in a different package is probably a bad idea, because it's really confusing, sorry: perhaps we should deprecate @Component in Maven Plugin Tools and create an annotation with another name. Any idea on a new name? Then Maven Plugin Tools uses its annotations (@Mojo, @Execute, @Parameter and @Component in org.apache.maven.plugins.annotations) to generate META-INF/ maven/plugin.xml plugin descriptor [3] . @Component annotation is more precisely at the source of <requirements> <requirement> <role/> <role-hint/> <field-name/> </requirement> </requirements> part Perhaps creating a @Requirement annotation in Maven Plugin Tools to replace @Component would reduce confusion: it would still not make a very visible difference between @Requirement from Maven Plugin Tools and @Requirement from Plexus [2]: but at least, both @Requirement annotations would have the same meaning WDYT? Regards, Hervé [1] http://maven.apache.org/plugin-tools/maven-plugin-tools-annotations/ index.html#Supported_Annotations [2] http://codehaus-plexus.github.io/plexus-containers/plexus-component-annotations/ [3] http://maven.apache.org/ref/3-LATEST/maven-plugin-api/plugin.html Le mercredi 1 février 2017, 20:01:10 CET Laird Nelson a écrit : > Thanks; yeah, I understand--maybe I don't actually--that there are certain > Maven plugin annotations that get converted into the XML descriptor. But > what about line 52 and following in the link you sent: > > > 1. @Component( role = MyComponentExtension.class, > 2. hint = "..." ) > 3. private MyComponent component; > > > Shouldn't that be replaced with JSR-330? Very confused; sorry! > > Best, > Laird > > On Wed, Feb 1, 2017 at 11:59 AM Robert Scholte <rfscho...@apache.org> wrote: > > No, plugin annotation are used to generate a plugin descriptor, i.e. > > META-INF/maven/plugin.xml > > At runtime this file is used to initialize the plugin, whereas the > > specified components are injected with sisu/guice > > > > Robert > > > > On Wed, 01 Feb 2017 20:52:19 +0100, Laird Nelson <ljnel...@gmail.com> > > > > wrote: > > > Thanks. But isn't _that_, in turn, replaced by JSR-330? This is what > > > I'm > > > confused about. > > > > > > On Wed, Feb 1, 2017 at 11:26 AM Robert Scholte <rfscho...@apache.org> > > > > > > wrote: > > >> This is what is used nowadays: > > https://maven.apache.org/components/plugin-tools/maven-plugin-tools-annota > > tions/index.html> > > >> Robert > > >> > > >> On Wed, 01 Feb 2017 19:21:09 +0100, Laird Nelson <ljnel...@gmail.com> > > >> > > >> wrote: > > >> > I apologize in advance for the inarticulate nature of this question. > > >> > > > >> > I have this faint sense that Sisu and Guice are at the core of Maven > > >> > these > > >> > days, with a Plexus layer on top. > > >> > > > >> > This makes me think that perhaps I should be using different > > >> > > >> annotations > > >> > > >> > in > > >> > my maven plugins than @Component etc. > > >> > > > >> > Is this ( > > > > https://maven.apache.org/guides/plugin/guide-java-plugin-development.html) > > > > >> > still the official guide for writing Maven plugins? If I wanted to > > >> > inject > > >> > some named Plexus component, is there some guide showing how to do > > >> > > >> that? > > >> > > >> > Thanks, > > >> > Best, > > >> > Laird > > >> > > >> --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > >> For additional commands, e-mail: users-h...@maven.apache.org > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > For additional commands, e-mail: users-h...@maven.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org