Vaadin+Spring项目vaadin-addons依赖构建失败POM配置排查
Vaadin+Spring项目vaadin-addons依赖构建失败问题解答
原配置存在的问题
- 仓库配置位置错误:原配置将
vaadin-addons仓库放在了id为vaadin-prerelease的profile下,且该profile默认不激活(activeByDefault=false),常规构建流程不会加载这个profile内的仓库配置,自然无法拉取org.vaadin.addons分组下的依赖。其他开发人员能正常构建同一项目,基本是因为本地Maven全局settings.xml配置过对应仓库,或是之前手动激活过该profile留下了配置缓存。 - 仓库配置不完整+协议问题:原配置中vaadin-addons仓库使用的是HTTP协议地址,当前多数Maven环境会默认拦截HTTP协议的仓库请求;同时原配置缺失插件仓库、Vaadin第三方依赖托管的Sonatype仓库声明,会导致部分传递依赖、Vaadin构建插件解析失败。
修正方案
你补充的配置已经可以完全解决问题,核心修正逻辑如下:
- 将仓库配置从非默认激活的profile中移出,放到pom.xml根节点下(与
dependencies、profiles节点同级),保证构建时默认加载所有必要源,所有仓库地址统一替换为HTTPS协议避免拦截:
<repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2/</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>vaadin-addons</id> <url>https://maven.vaadin.com/vaadin-addons</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>sonatype vaadin</id> <url>https://oss.sonatype.org/content/repositories/vaadin/</url> </repository> <repository> <id>vaadin-prereleases</id> <url>https://maven.vaadin.com/vaadin-prereleases</url> </repository> </repositories>
- 补充插件仓库配置,避免Vaadin相关Maven插件解析失败:
<pluginRepositories> <pluginRepository> <id>central</id> <url>https://repo.maven.apache.org/maven2/</url> </pluginRepository> <pluginRepository> <id>vaadin-prereleases</id> <url>https://maven.vaadin.com/vaadin-prereleases</url> </pluginRepository> </pluginRepositories>
配置修改完成后如果仍存在依赖拉取失败的情况,可以执行
mvn clean install -U强制刷新依赖快照,同时检查本地Maven的settings.xml是否配置了全局镜像,拦截了vaadin相关仓库的请求。
内容的提问来源于stack exchange,提问作者Rainbow
相关产品推荐
相关产品推荐

