Mapbox Java SDK Maven仓库认证失败(401)求助
问题背景
按照Mapbox官方Android相关文档配置Maven仓库引入Mapbox Java SDK(版本6.11.0),执行mvn clean package时触发401未授权错误,无法解析依赖。
错误信息
[ERROR] Failed to execute goal on project : Could not resolve dependencies for project project:jar:1.0: Failed to collect dependencies at com.mapbox.mapboxsdk:mapbox-sdk-services:jar:6.11.0: Failed to read artifact descriptor for com.mapbox.mapboxsdk:mapbox-sdk-services:jar:6.11.0: The following artifacts could not be resolved: com.mapbox.mapboxsdk:mapbox-sdk-services:pom:6.11.0 (absent): Could not transfer artifact com.mapbox.mapboxsdk:mapbox-sdk-services:pom:6.11.0 from/to mapbox (https://api.mapbox.com/downloads/v2/releases/maven): status code: 401, reason phrase: Unauthorized (401) -> [Help 1]
当前项目配置
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.group1</groupId> <artifactId>project1</artifactId> <name>Project Name</name> <description>Project description</description> <dependencies> <dependency> <groupId>com.mapbox.mapboxsdk</groupId> <artifactId>mapbox-sdk-services</artifactId> <version>6.11.0</version> </dependency> <dependency> <groupId>com.mapbox.mapboxsdk</groupId> <artifactId>mapbox-sdk-turf</artifactId> <version>6.11.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <configuration> <finalName>jar-with-dependencies</finalName> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>launchClass</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
settings.xml
<settings> <servers> <server> <id>mapbox</id> <username>mapbox</username> <password>[Token generated on my mapbox account]</password> </server> </servers> </settings>
解决方案
添加Mapbox仓库到pom.xml
当前pom.xml缺少Mapbox仓库声明,Maven无法定位依赖来源。在<project>节点下加入以下配置,注意<id>必须与settings.xml中server的<id>保持一致:<repositories> <repository> <id>mapbox</id> <url>https://api.mapbox.com/downloads/v2/releases/maven</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>检查Token权限
确认Mapbox账号生成的Token具备DOWNLOADS:READ权限,无此权限会直接触发401错误,可在账号Token管理页面调整权限。验证settings.xml路径
确保配置文件放在正确位置:- 全局配置:
~/.m2/settings.xml(Linux/macOS)或C:\Users\<用户名>\.m2\settings.xml(Windows) - 项目级配置:放在项目根目录
.mvn文件夹下
- 全局配置:
清理Maven缓存
执行命令清理本地缓存,避免无效缓存干扰:mvn clean install -U
验证
完成配置后重新执行mvn clean package,即可正常拉取依赖并完成打包。
内容的提问来源于stack exchange,提问作者PascalP
相关产品推荐
相关产品推荐

