David V
David V

Reputation: 11699

How to ignore a Maven plugin

We have a groupId for Maven plugins:

com.company.maven.plugins

Unfortunately, when I created the first plugin in this groupId, I initially used the wrong naming convention.

maven-myplugin-plugin

The 1.x versions of the plugin used that name. When I realized this was wrong I changed the name to meet the correct convention.

myplugin-maven-plugin

Then I updated the version to 2.x.

In my local settings.xml file I use the pluginGroups to access my plugins from the command line. This particular plugin does not have to be specified in the pom file.

Unfortunately, when I try to access my plugin from the command line without scoping the name I always get the latest version of the incorrect naming convention. So, I get a 1.x version.

Can I tell Maven to ignore the maven-myplugin-plugin artifacts when accessing from the command line (i.e. mvn myplugin:mygoal)?

Some projects still use the old 1.x plugins, so I don't want to delete them from our repository. Also, we are using at least Maven 3.0.3.

Upvotes: 2

Views: 832

Answers (1)

matthes
matthes

Reputation: 3002

It somehow seems that Maven3 resolves the prefixes from plugins in the order of

1. maven-myplugin-plugin
2. myplugin-maven-plugin
3. ... hard-wired groups ...

Following the official naming convention it should be the other way round imho. Nevertheless, I think you do not have a chance to get this fixed. I tried a set of things, basically playing around with the goalPrefix in the maven-plugin-plugin config. Installing a new version of the deprecated-named plugin with goalPrefix did not work. I guess one thing you could do is defining another prefix for your correctly-named plugin, e.g.:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-plugin-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
        <goalPrefix>myplugin2</goalPrefix>
    </configuration>
</plugin>

Another approach could be to adjust the old plugin's pom.xml, renaming it to something different. But this would imply that your colleagues would need a different execute a different mvn command. Or you can rename your current plugin - similar results.

If there is a better solution, I would also be interested!

Upvotes: 1

Related Questions