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

Mule 3项目mvn clean install失败:依赖解析错误求助

问题

维护基于Mule 3的API项目时,执行mvn clean install构建失败,报错信息如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency- 
plugin:2.10:unpack (unpack) on project xyz: Unable to resolve artifact.: 
Could not transfer artifact ORGID:xyz:zip:fat-raml:1.0.2 from/to 
springio (http://repo.spring.io/libs-release): Failed to transfer file: 
http://repo.spring.io/libs-release/ORGID/xyz/1.0.2/xyz-1.0.2-fat-raml.zip. 
Return code is: 308 , ReasonPhrase:Permanent Redirect.
[ERROR]   ORGID:xyz:zip:1.0.2
[ERROR]
[ERROR] from the specified remote repositories:
[ERROR]   MuleRepositoryEE (https://repository.mulesoft.org/nexus- 
ee/content/repositories/releases-ee/, releases=true, snapshots=false),
[ERROR]   MuleRepository 
(https://repository.mulesoft.org/nexus/content/repositories/releases/, releases=true, 
snapshots=false),
[ERROR]   AnypointExchangeRepository 
(https://maven.anypoint.mulesoft.com/api/v2/organizations/ORGID/maven, releases=true, 
snapshots=true),
[ERROR]   springio (http://repo.spring.io/libs-release, releases=true, snapshots=true),
[ERROR]   Central (http://repo1.maven.org/maven2/, releases=true, snapshots=true),
[ERROR]   mulesoft-releases (http://repository.mulesoft.org/releases/, releases=true, 
snapshots=true),
[ERROR]   mule-ee-releases (https://repository- 
master.mulesoft.org/nexus/content/repositories/releases-ee/, releases=true, 
snapshots=true),
[ERROR]   central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false)
[ERROR] -> [Help 1]

相关maven-dependency-plugin配置:

<build>
    <plugins>
    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.10</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>ORGID</groupId>
                                <artifactId>xyz</artifactId>
                                <version>1.0.2</version>
                                <type>zip</type>
                                <classifier>fat-raml</classifier>
                                <overWrite>true</overWrite>
                                <outputDirectory>src/main/api/</outputDirectory>
                                <includes>**/*</includes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

POM中的仓库配置:

<repositories>
      <repository>
         <id>springio</id>
         <name>springio</name>
         <url>http://repo.spring.io/libs-release</url>
         <layout>default</layout>
      </repository>
     
      <repository>
        <id>Central</id>
        <name>Central</name>
        <url>http://repo1.maven.org/maven2/</url>
        <layout>default</layout>
    </repository>
    <repository>
        <id>mulesoft-releases</id>
        <name>MuleSoft Releases Repository</name>
        <url>http://repository.mulesoft.org/releases/</url>
        <layout>default</layout>
    </repository>
     
    <repository>
        <id>AnypointExchangeRepository</id>
        <name>AnypointExchangeRepository</name>
        <url>https://maven.anypoint.mulesoft.com/api/v2/organizations/ORGID/maven</url>
        <layout>default</layout>
    </repository>
    <repository>
        <id>mule-ee-releases</id>
        <name>MuleEE Releases Repository</name>
        <url>https://repository-master.mulesoft.org/nexus/content/repositories/releases-ee/</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>mulesoft-release</id>
        <name>mulesoft release repository</name>
        <layout>default</layout>
        <url>http://repository.mulesoft.org/releases/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>
<distributionManagement>
    <repository>
        <id>AnypointExchangeRepository</id>
        <name>AnypointExchangeRepository</name>
        <url>https://maven.anypoint.mulesoft.com/api/v1/organizations/ORGID/maven</url>
        <layout>default</layout>
    </repository>
</distributionManagement>

疑问:ORGID:xyz:zip:fat-raml:1.0.2应该从AnypointExchangeRepository获取,为什么Maven会尝试从Spring仓库查找?是否需要调整仓库顺序?


分析与解决

为什么会从Spring仓库查找

Maven会按照仓库在POM(及settings.xml)中的声明顺序依次查找构件。当前AnypointExchangeRepository在仓库列表中位置靠后,Maven先检查了springio仓库,自然会尝试从该仓库下载构件——即使这个构件根本不属于Spring的仓库范围。另外报错中的308是永久重定向,说明springio仓库的HTTP地址已失效,这是触发构建失败的直接原因,但不是构件找不到的核心问题。

解决方案

  1. 调整仓库顺序:将AnypointExchangeRepository移到<repositories>的最前面,让Maven优先检查这个对应组织的私有仓库,避免无效的仓库查询。修改后的仓库配置片段:
<repositories>
    <repository>
        <id>AnypointExchangeRepository</id>
        <name>AnypointExchangeRepository</name>
        <url>https://maven.anypoint.mulesoft.com/api/v2/organizations/ORGID/maven</url>
        <layout>default</layout>
    </repository>
    <repository>
       <id>springio</id>
       <name>springio</name>
       <url>https://repo.spring.io/libs-release</url>
       <layout>default</layout>
    </repository>
    <repository>
        <id>Central</id>
        <name>Central</name>
        <url>https://repo1.maven.org/maven2/</url>
        <layout>default</layout>
    </repository>
    <repository>
        <id>mulesoft-releases</id>
        <name>MuleSoft Releases Repository</name>
        <url>https://repository.mulesoft.org/releases/</url>
        <layout>default</layout>
    </repository>
    <repository>
        <id>mule-ee-releases</id>
        <name>MuleEE Releases Repository</name>
        <url>https://repository-master.mulesoft.org/nexus/content/repositories/releases-ee/</url>
    </repository>
</repositories>
  1. 修复仓库URL的重定向问题:将springio、Central、mulesoft-releases的HTTP地址改为HTTPS,彻底解决308永久重定向错误。

  2. 验证仓库权限:确认Maven的settings.xml中已配置AnypointExchangeRepository的正确认证信息,避免因权限不足导致构件无法下载。

  3. 清理本地缓存:执行mvn clean install -U,强制更新构件信息,清除本地仓库的无效缓存。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:10:19