为什么maven试图在我的本地nexus之前从repo1、maven.org下载?

为什么maven试图在我的本地nexus之前从repo1、maven.org下载?,maven,nexus,Maven,Nexus,我已经安装了nexus,并将我的settings.xml配置为使用我的本地nexus作为存储库,但是,它总是先尝试从repo1.maven.org获取工件,然后在从nexus获取之前超时 我们通常在POM.xml中声明存储库: <repositories> <repository> <id>internal</id> <url>http://192.168.0.10:8084/nexus/cont

我已经安装了nexus,并将我的settings.xml配置为使用我的本地nexus作为存储库,但是,它总是先尝试从repo1.maven.org获取工件,然后在从nexus获取之前超时

我们通常在POM.xml中声明存储库:

<repositories>
    <repository>
        <id>internal</id>
        <url>http://192.168.0.10:8084/nexus/content/repositories/public</url>
    </repository>
    <repository>
    ...

内部的
http://192.168.0.10:8084/nexus/content/repositories/public
...
根据文档,your settings.xml中的信息是“本地”存储库,即硬盘中的M2_REPO副本。


此外,我们将Nexus设置为外部回购的镜像,因此您只能在Nexus服务器上声明这些回购。

您需要在settings.xml中声明Nexus是外部回购的镜像,如中所述(您应该阅读)


关系
*
http://nexushost:8081/nexus/content/groups/public

在2.2.1和3.0.3中,如果使用-gs选项覆盖默认设置并指定自定义全局设置文件,则在某些情况下会忽略镜像。确保conf中有一个有效的settings.xml。

我认为您没有理解settings.xml的要点。此外,将存储库放在POM文件中会损害长期稳定性:只有将存储库保持在该确切位置,POM才会起作用。现在你的POM不能随身携带。如果你曾经重命名/重新编号/重新组织,你所有的旧POM都会断开。用于依赖项解析的可用存储库集是特定于环境的;它应该独立于项目定义进行管理。@Zac:Hm,也许吧。但是settings.xml是一个用户设置文件,这意味着如果我想让整个项目团队共享这个配置,他们都必须复制这些设置。我喜欢人们能够从版本控制中签出并准备好在项目中工作,而不需要配置任何个人文件(如果可能)。此外,确保内部公司回购URL稳定是很容易保证的,即使移动位置,如果您正确设置名称服务器。。。使用别名
http://nexus-server/...
好的。但是您必须在每个项目中复制这些信息,并且正如我所描述的,它确实限制了POM的使用。我更愿意告诉开发人员一次:“这里是版本控制,这里是存储库管理器”。这只是一条额外的信息;你必须告诉他们从哪里结账。但是你应该做任何对你有用的事。
<mirrors>
  <mirror>
    <!--This sends everything else to /public -->
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://nexushost:8081/nexus/content/groups/public</url>
  </mirror>
</mirrors>