Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Maven settings.xml中设置存储库的顺序_Java_Maven_Dependency Management - Fatal编程技术网

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

Java 如何在Maven settings.xml中设置存储库的顺序,java,maven,dependency-management,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://

我的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>
我的
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>

空间
真的
假的
s1释放
系统一发布
http://some.server/mvn2repo/releases
真的
假的
s1-3第三方
System One第三方发布
http://some.server/mvn2repo/3rdParty
真的
真的
中心的
http://repo1.maven.org/maven2
真的
真的
中心的
http://repo1.maven.org/maven2
空间

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

至于在settings.xml中配置存储库,我已经读到存储库的顺序与访问存储库的顺序正好相反

有人在这里解释了这种好奇:

也可以考虑使用一个存储库管理器,例如Nexus并配置所有的存储库。

在我的例子中没有一个答案是正确的。顺序似乎取决于标记的字母顺序,这是一个任意字符串。因此,该强制回购搜索订单:

            <repository>
                <id>1_maven.apache.org</id>
                <releases>  <enabled>true</enabled>  </releases>
                <snapshots> <enabled>true</enabled> </snapshots>
                <url>https://repo.maven.apache.org/maven2</url>
                <layout>default</layout>
            </repository>

            <repository>
                <id>2_maven.oracle.com</id>
                <releases>  <enabled>true</enabled>  </releases>
                <snapshots> <enabled>false</enabled> </snapshots>
                <url>https://maven.oracle.com</url>
                <layout>default</layout>
            </repository>

1_maven.apache.org
真的
真的
https://repo.maven.apache.org/maven2
违约
2_maven.oracle.com
真的
假的
https://maven.oracle.com
违约

你的链接看起来很有希望,我试着颠倒顺序,但没用。嗯,奇怪。您使用的是哪一版本的Maven?事实上,在一个新项目中,顺序是1)活动概要文件描述(反转),然后是2)存储库asc。因此,“中央”应该是最后激活配置文件中的第一个回购,而不是相反的顺序。您应该指定本地回购为tagLet's vote中针对以下问题的第一个回购:只需选择一个工作回购并
配置它…@HendyIrawan似乎MNG-4400已通过maven 3.0 FWIw修复。这是问题更新问题链接的更新链接,为什么您不能使用它?如果这是因为您无法维护自己的服务器,那么您可以尝试一下,几分钟后您将获得一个cloud Maven repo并运行。它一定是某个特定的Maven版本(有bug?)。我有maven 3.6,这是公认答案中列出的顺序。是的,我认为错误是这样的:在maven 3.0之后,它以正确的顺序读取
            <repository>
                <id>1_maven.apache.org</id>
                <releases>  <enabled>true</enabled>  </releases>
                <snapshots> <enabled>true</enabled> </snapshots>
                <url>https://repo.maven.apache.org/maven2</url>
                <layout>default</layout>
            </repository>

            <repository>
                <id>2_maven.oracle.com</id>
                <releases>  <enabled>true</enabled>  </releases>
                <snapshots> <enabled>false</enabled> </snapshots>
                <url>https://maven.oracle.com</url>
                <layout>default</layout>
            </repository>