Maven中的查找顺序

时间:2017-04-13 09:50:21

标签: git maven jenkins pom.xml

我们有以下设置xml

<profiles>
        <profile>
            <id>active-repo</id>
            <repositories>
                <repository>
                    <id>A</id>
                    <url>XXXXX</url>
                    <releases><updatePolicy>never</updatePolicy></releases>
                </repository>
                <repository>
                    <id>B</id>
                    <url>XXXXXX</url>
                    <releases><enabled>true</enabled></releases>
                    <snapshots/>
                </repository>
                <repository>
                    <id>C</id>
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>false</enabled></snapshots> 
                    <url>XXXXX</url>
                </repository>
                <repository>
                    <id>D</id>
                    <url>XXXXX</url>
                    <releases><updatePolicy>never</updatePolicy></releases>
                </repository>
                <repository>
                    <id>E</id>
                    <url>XXXXX</url>
                    <snapshots/>
                </repository>
             </repositories>

令人惊讶的是,尝试从存储库“D”下载依赖项,从而覆盖前面提到的依赖项 此外,一旦尝试失败并显示以下消息 - 其他存储库没有回退

[INFO] [WARNING] Failure to transfer xxxxxx from XXXXXX was cached in the local repository, resolution will not be reattempted until the update interval of D has elapsed or updates are forced. 

问题:
如何确定存储库中的查找顺序?
为什么它不会回退到其他存储库?

pom中的依赖项查找没有明确的存储库覆盖。

1 个答案:

答案 0 :(得分:0)

不确定订单,但Maven只会从snapshots&gt;的存储库下载快照工件。 enabled = true并仅从具有releases&gt;的存储库中发布(即非快照) enabled = true

因此,您的示例中的xxxxxx版本可能非常重要,因为并非所有存储库都有资格获得快照和版本。