java - 如何在 Maven settings.xml 中设置存储库的顺序

标签 java maven dependency-management

我的 settings.xml 中有 3 个存储库,因为我需要所有这些存储库。每当找不到依赖项时,Maven 就会尝试

Downloading: http://some.server/mvn2repo/releases/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://some.server/mvn2repo/3rdParty/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/2.9.1/lucene-core-2.9.1.pom
<success>

所有存储库,但大多数时候当然是在中央 (repo1) 中找到 Artifact 。我希望 Maven 先检查这个 repo。我尝试了 settings.xml 中的声明顺序,但没有奏效。根据 fgysin,我也尝试了相反的顺序,这并没有改变任何东西。

我的 Maven 版本:

C:\>mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_15
Java home: C:\Program Files\Java\jdk1.6.0_15\jre
Default locale: de_AT, platform encoding: Cp1252
OS name: "windows vista" version: "6.0" arch: "amd64" Family: "windows"

我的settings.xml

<profiles>
    <profile>
        <id>space</id>
        <repositories>
            <repository>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>s1-releases</id>
                <name>System One Releases</name>
                <url>http://some.server/mvn2repo/releases</url>
            </repository>
            <repository>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>s1-3rdParty</id>
                <name>System One 3rd Party Releases</name>
                <url>http://some.server/mvn2repo/3rdParty</url>
            </repository>
            <repository>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <id>central</id>
                <url>http://repo1.maven.org/maven2</url>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <id>central</id>
                <url>http://repo1.maven.org/maven2</url>
            </pluginRepository>
        </pluginRepositories>
    </profile>
</profiles>

<activeProfiles>
    <activeProfile>space</activeProfile>
</activeProfiles>

最佳答案

据我所知,你的 pom.xml 中存储库的顺序也会决定存储库访问的顺序。

至于在 settings.xml 中配置存储库,我已经读到存储库的顺序与如何访问存储库的 inverse 顺序非常有趣。

这里有人解释了这种好奇心:
http://community.jboss.org/message/576851

关于java - 如何在 Maven settings.xml 中设置存储库的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5325407/

相关文章:

java - Spring MVC/Maven 中的注释不起作用

maven - Maven 存储库中 SNAPSHOT 版本的规则

java - 尝试将架构应用于 JSON 数据时,SPARK 数据帧返回 null

java - 选择要使用的根 DNS 服务器

java - 如何在一个套接字上发送各种信息?

java - 这个 java 应用程序可以在 Heroku 上运行吗?

java - 如何在 Java 中要求依赖项?

javascript - 带有两个注册表的 npm package.json

ant - 是否有与mvn jar-with-dependencies等同的 Ivy / Ant ?

java - 在eclipse中调试带有源代码的jar文件