[ https://issues.apache.org/jira/browse/MPLUGIN-504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17852526#comment-17852526 ]
Tamas Cservenak edited comment on MPLUGIN-504 at 6/5/24 6:20 PM: ----------------------------------------------------------------- Right, so the story short: Maven Core plugins (those maintained by Apache Maven project) have {{artifactId}} in form of {{{}maven-$prefix-plugin{}}}. Here, the heuristics from the {{maven-plugin-plugin}} (that ironically have prefix {{{}plugin{}}}) "lifts" the {{$prefix}} part and makes it goalPrefix. Convention for "non core plugins" (for example [mojohaus|https://github.com/mojohaus/] plugins, but every other as well) is in turn use the {{$prefix-maven-plugin}} form, and similarly, the heuristics from the maven-plugin-plugin "lifts" the prefix part and makes it goalPrefix. Problem is when this "heuristics" (that is quite simplistic) fails, and no goalPrefix gets found. In that case use config as: {noformat} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>3.13.1</version> <configuration> <goalPrefix>myprefix</goalPrefix> </configuration> </plugin>{noformat} The rationale behind requiring plugin prefix was change explained in MNG-7618, as anyway majority of plugins (that followed artifactId naming convention) had prefix already. Moreover, prefix is used in G level metadata for plugin discovery as well (explained in [https://maven.apache.org/settings.html#plugin-groups]) that without prefix present is not possible. was (Author: cstamas): Right, so the story short: Maven Core plugins (those maintained by Apache Maven project) have {{artifactId}} in form of {{{}maven-$prefix-plugin{}}}. Here, the heuristics from the {{maven-plugin-plugin}} (that ironically have prefix {{{}plugin{}}}) "lifts" the {{$prefix}} part and makes it goalPrefix. Convention for "non core plugins" (for example [mojohaus|https://github.com/mojohaus/] plugins, but every other as well) is in turn use the {{$prefix-maven-plugin}} form, and similarly, the heuristics from the maven-plugin-plugin "lifts" the prefix part and makes it goalPrefix. Problem is when this "heuristics" (that is quite simplistic) fails, and no goalPrefix gets found. In that case use config as: {noformat} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>3.13.1</version> <configuration> <goalPrefix>myprefix</goalPrefix> </configuration> </plugin>{noformat} The rationale behind requiring plugin prefix was change explained in MNG-7618, as anyway majority of plugins (that followed artifactId naming convention) had prefix already. Moreover, prefix is used in G level metadata for plugin discovery as well (explained in https://maven.apache.org/settings.html#plugin-groups). > [regression] Goal prefix is required now > ---------------------------------------- > > Key: MPLUGIN-504 > URL: https://issues.apache.org/jira/browse/MPLUGIN-504 > Project: Maven Plugin Tools > Issue Type: Bug > Reporter: Christoph Läubrich > Priority: Major > > With https://issues.apache.org/jira/browse/MPLUGIN-450 there was a regression > introduced that leads to previous working builds fail if the have not > configured a goalprefix, the error message is: > > You need to specify a goalPrefix as it can not be correctly computed > This has several issues: > # It does not explain why one "needs" a goalPrefix, nor what it is useful for > or why it can not be correctly computed. > # It is effectively a breaking change in a minor version increment > # The inital JIRA mentions that > a) in general, goal prefix is *+optional+*, but "good to have", and usually > is present. > b) we may want to have some option to turn off this feature > # Now it is required and there is no option to turn it off > Also the message is not true, the plugin has successfully computed a prefix > before without any issues: > * If the artifact ends with -maven-plugin as in my-cool-maven-plugin the > my-cool was chosen > * If the artifact ends with -plugin as in my-cool-plugin the my-cool was > chosen > * otherwise the full artifact if was chosen as a prefix as in my-cool the > my-cool was chosen > From a users point of view I don't see any problem or "disambiguates" with > this approach that justifies a breaking change here, anyone who is concerned > about not using this default can and already could choose a prefix and seem > to been fine with it for a long time. -- This message was sent by Atlassian Jira (v8.20.10#820010)