You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Maven插件从私有Bitbucket仓库下载文件遇404问题求助

问题描述

在本地构建流程中尝试通过Maven插件从私有Bitbucket仓库下载文件,但始终返回404响应码。Maven配置如下:

<build>
    <plugins>
            <plugin>
                <groupId>com.googlecode.maven-download-plugin</groupId>
                <artifactId>download-maven-plugin</artifactId>
                <version>1.6.8</version>
                <executions>
                    <execution>
                        <id>install-hereIAm</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>wget</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <username>{bitbucketUsername}</username>
                    <password>{bitbucketAppPassword}</password>
                    <uri>https://bitbucket.org/{user}/{repo}/raw/HEAD/somePath/hereIam</uri>
                    <outputFileName>findMe.txt</outputFileName>
                    <outputDirectory>${project.build.outputDirectory}/desired/path/</outputDirectory>
                </configuration>
            </plugin>
    </plugins>
</build>

同时在终端执行wget命令也返回404:

$ wget -u {bitbucketUsername}:{bitbucketAppPassword} https://bitbucket.org/{user}/{repo}/raw/HEAD/somePath/hereIam

怀疑是认证方式不正确,寻求解决思路。

解决思路

1. 先验证URL有效性

  • 确认{user}、{repo}、somePath/hereIam这些占位符已替换为实际的仓库所有者、仓库名和文件路径
  • Bitbucket私有仓库的raw文件URL建议用具体分支名(如main/master)替换HEAD,避免HEAD指向异常导致路径无效
  • 登录Bitbucket后在浏览器直接访问该URL,确认文件确实存在,排除路径错误的可能

2. 修正认证相关问题

  • 检查App Password权限:确保创建的Bitbucket App Password拥有repository:read权限,Bitbucket对无权限请求会返回404而非401,这是常见坑点
  • 修正wget命令参数:wget的认证参数是--user和--password,你用的-u是错误参数,正确命令如下:
    $ wget --user={bitbucketUsername} --password={bitbucketAppPassword} https://bitbucket.org/{user}/{repo}/raw/main/somePath/hereIam
    
  • 确认Maven插件的认证传递:检查是否有Maven settings.xml中的镜像、代理干扰了认证信息传递,部分旧版本的download-maven-plugin可能需要显式开启认证支持

3. 换一种认证方式测试

  • 可临时在URL中嵌入认证信息进行测试(仅用于排查,不建议生产环境使用):
    $ wget https://{bitbucketUsername}:{bitbucketAppPassword}@bitbucket.org/{user}/{repo}/raw/main/somePath/hereIam
    
    对应Maven插件的uri可修改为:
    <uri>https://{bitbucketUsername}:{bitbucketAppPassword}@bitbucket.org/{user}/{repo}/raw/main/somePath/hereIam</uri>
    

4. 排查网络与权限边界

  • 检查本地是否有代理服务器,确认代理未拦截请求或未正确传递认证信息
  • 确认当前Bitbucket用户对目标私有仓库拥有读取权限,即使App Password正确,用户本身无仓库权限也会返回404

内容的提问来源于stack exchange,提问作者ibecar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:19:47