Maven使用自研插件未从配置仓库下载拉取错误版本问题
问题原因
两个配置问题共同导致了该异常:
- 你配置的
<repositories>节点仅用于拉取项目普通依赖,Maven插件的拉取仓库独立于普通依赖的仓库配置,默认只会从中央仓库拉取插件,不会读取你写在<repositories>里的自定义仓库地址。 - 你使用的是
1.6-SNAPSHOT版本的自定义插件,中央仓库不存在这个坐标的制品,Maven解析插件时如果命令行没写全插件完整groupId,会按插件前缀匹配规则检索可用插件,直接命中中央仓库已有的org.codehaus.mojo:latex-maven-plugin:1.1同名第三方插件,最终拉取错误制品导致执行失败。
修复步骤
按以下顺序调整配置即可解决:
- 补充插件仓库配置:在pom.xml或者Maven全局配置
settings.xml中,新增<pluginRepositories>节点,将存放自定义插件的仓库地址配置进去,由于你用的是SNAPSHOT版本,必须显式开启该仓库的快照拉取权限:
<pluginRepositories> <pluginRepository> <id>publicRepoAtSimuline</id> <name>repo at simuline</name> <url>https://www.simuline.eu/RepositoryMaven</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
- 配置插件组避免前缀匹配错误:在
settings.xml的<pluginGroups>节点中添加自定义插件的groupId,让Maven解析简写插件命令时优先扫描你自己的插件:
<pluginGroups> <pluginGroup>eu.simuline.m2latex</pluginGroup> </pluginGroups>
- (可选)临时验证时可以直接写全插件完整坐标执行命令,完全跳过Maven的前缀匹配逻辑,命令格式参考:
mvn eu.simuline.m2latex:latex-maven-plugin:1.6-SNAPSHOT:${your.plugin.goal}
排查提示:清理本地仓库后第一次拉取插件时,可以追加
-U参数强制Maven刷新远程仓库的元数据和快照版本,避免旧缓存导致的解析异常。
内容的提问来源于stack exchange,提问作者user2609605
相关产品推荐
相关产品推荐

