如何忽略Maven插件

时间:2013-04-18 15:31:43

标签: maven maven-3 maven-plugin

我们有一个用于Maven插件的groupId:

com.company.maven.plugins

不幸的是,当我在这个groupId中创建第一个插件时,我最初使用了错误的命名约定。

maven-myplugin-plugin

该插件的1.x版本使用了该名称。当我意识到这是错误的时候,我更改了名称以符合correct convention

myplugin-maven-plugin

然后我将版本更新为2.x。

在我的本地settings.xml文件中,我使用pluginGroups从命令行访问我的插件。不必在pom文件中指定此特定插件。

不幸的是,当我尝试从命令行访问我的插件而没有确定名称时,我总是得到最新版本的错误命名约定。所以,我得到一个1.x版本。

从命令行访问时,我可以告诉Maven忽略maven-myplugin-plugin工件(即mvn myplugin:mygoal)吗?

有些项目仍然使用旧的1.x插件,所以我不想从我们的存储库中删除它们。此外,我们至少使用Maven 3.0.3。

1 个答案:

答案 0 :(得分:1)

似乎Maven3按照

的顺序解析了插件的前缀
1. maven-myplugin-plugin
2. myplugin-maven-plugin
3. ... hard-wired groups ...

按照官方命名惯例,成为另一种方式。不过,我认为你没有机会解决这个问题。我尝试了一系列的东西,主要是在maven-plugin-plugin配置中使用goalPrefix。使用 goalPrefix 安装新版本的已弃用命名的插件不起作用。我想你可以做的一件事是为你正确命名的插件定义另一个前缀,例如:

<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>

另一种方法可能是调整插件的pom.xml,将其重命名为不同的东西。但这意味着你的同事需要一个不同的执行不同的mvn命令。或者你可以重命名你当前的插件 - 类似的结果。

如果有更好的解决方案,我也会感兴趣!

相关问题