Maven Assembly插件未遵循仓库配置问题排查求助
全局settings.xml配置未覆盖:如果内部Nexus仅在项目pom.xml的
<repositories>中配置,但Maven全局settings.xml(通常位于~/.m2/settings.xml或Maven安装目录的conf/settings.xml)里仍保留默认central仓库指向Maven Central,Maven会优先使用全局配置。需检查全局settings中的<repositories>和<pluginRepositories>,确保central仓库的URL指向内部Nexus,或通过镜像将所有请求路由到Nexus。未同步配置插件仓库:Assembly插件自身的依赖(如打包所需组件)是从
<pluginRepositories>拉取的,而非普通<repositories>。若仅配置了普通仓库,未在<pluginRepositories>中同样设置Nexus作为central仓库,插件相关依赖会直接请求Maven Central。镜像(Mirror)配置错误:若全局settings中配置了镜像,但
<mirrorOf>属性未正确匹配central仓库,或镜像URL未指向内部Nexus,Maven仍会访问官方Central。正确的镜像配置示例:<mirrors> <mirror> <id>nexus-central</id> <mirrorOf>central</mirrorOf> <url>http://your-nexus-url/repository/maven-public/</url> </mirror> </mirrors>仓库发布/快照开关设置错误:检查Nexus仓库的配置,确保
<releases>和<snapshots>的enabled属性与依赖类型匹配。例如,若依赖是release版本,但Nexus仓库的<releases><enabled>false</enabled></releases>,Maven会跳过该仓库,转而请求官方Central。本地仓库缓存干扰:本地
.m2/repository中可能缓存了部分依赖的错误仓库元数据,导致Maven直接根据缓存访问官方Central。可尝试删除本地仓库中对应依赖的目录,重新执行构建验证是否走Nexus。Assembly插件依赖解析逻辑问题:部分场景下,Assembly插件构建包时会解析额外依赖(如辅助打包组件),这些依赖可能未继承项目的仓库配置。可检查插件配置是否显式指定了依赖来源,或尝试升级Assembly插件至最新稳定版本。
内容的提问来源于stack exchange,提问作者Mark VY

