Maven从哪里获取用于下载poms的网址

时间:2016-03-23 15:40:55

标签: java maven netbeans ip-address

对于某些项目,maven似乎在构建正确的网址时遇到了问题。

我遇到了失败:

  

无法在项目上执行目标测试:无法解析项目com.oldcurmudgeon的依赖项:测试:jar:1.0:无法收集[...,com.google.guava:guava:jar:15.0的依赖项(编译) ),commons-collections:commons-collections:jar:3.2.1 ...]:无法读取org.slf4j的工件描述符:jul-to-slf4j:jar:1.7.14:无法传输工件org.slf4j: jul-to-slf4j:pom:1.7.14 from / to uk.maven.org(http://uk.maven.org/maven2):连接到 uk.maven.org:80 [uk.maven .org / 23.235.43.209 ] 失败:连接超时:连接 - > [帮助1]

我不明白 23.235.43.209 来自哪里?它是配置还是什么?一些pom.xmlsettings.xml

可以浏览http://uk.maven.org/maven2罚款。

可以浏览到uk.maven.org:80很好。

不能浏览uk.maven.org/23.235.43.209。

IP地址显然是问题所在,但我该如何追踪此IP的来源?

settings.xml文件夹中的.m2(如@KoustavRay所述)读取:

  ...
  <profiles>
    <profile>
      <id>Repositories</id>
      <repositories>
        <repository>
          <id>central</id>
          <name>Maven.org Repository for Maven</name>
          <url>http://repo1.maven.org/maven2/</url>
        </repository>
        <repository>
          <id>apache</id>
          <name>Maven.org Repository for Apache</name>
          <url>http://repo.maven.apache.org/maven2/</url>
        </repository>
        <repository>
          <id>java.net</id>
          <name>Java.net Repository for Maven</name>
          <url>http://download.java.net/maven/2/</url>
        </repository>
      </repositories>
    </profile>
   ...

所以没有提到奇怪的IP地址。事实证明,第三个是有点不确定 - 它从那以后就被移动了。但是,删除该条目并不能解决问题。

mirrors部分:

<mirror>
  <mirrorOf>central</mirrorOf>
  <name>UK Mirror for maven.org</name>
  <url>http://uk.maven.org/maven2</url>
  <id>uk.maven.org</id>
</mirror>

3 个答案:

答案 0 :(得分:2)

[uk.maven.org/23.235.43.209]不是URL,我认为这是一个冗长的输出,以帮助查找网络问题。

23.235.43.209 IP uk.maven.org

C:\Users\hinneLinks>nslookup uk.maven.org
Server:  fritz
Address:  10.2.1.13

Nicht autorisierende Antwort:
Name:    sonatype.map.fastly.net
Address:  23.235.43.209
Aliases:  uk.maven.org
          central.maven.org

答案 1 :(得分:1)

<强>编辑:

回答问题central的定义位于Maven安装的Maven超级POM中。如果您希望将Maven安装指向其他中央存储库,则可以镜像此存储库。

解决方案:由于多个问题,您可能无法连接。但是,有几个官方的中央存储库在地理位置上分布。您可以更改settings.xml($ {user.home} / .mm/settings.xml)文件以使用一个或多个镜像。可以在使用Mirrors for Repositories的指南中找到相关说明。  一个例子:

<settings>
  ...
  <mirrors>
    <mirror>
      <id>UK</id>
      <name>UK Central</name>
      <url>http://uk.maven.org/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
     <mirror>
        <id>planetmirror.com</id>
        <name>PlanetMirror Australia</name>
        <url>http://downloads.planetmirror.com/pub/maven2</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

答案 2 :(得分:0)

当您构建Maven项目时,将解析pom.xml文件,如果它看到log4j Maven坐标,则Maven按此顺序搜索log4j库:

在Maven本地存储库中搜索log4j。 在Maven中央存储库中搜索log4j。 在Maven远程存储库中搜索log4j(如果在pom.xml中定义)。 这个Maven依赖库管理是一个非常好的工具,为您节省了大量的工作。 有几个官方的中央存储库在地理上分布。您可以对settings.xml进行更改。目前,mavenSW中央存储库位于http://repo1.maven.org/maven2。您可以在org / apache / maven / project / pom-4.0.0.xml的maven-2.0.8-uber.jar中的super pom.xml文件中找到此URL。

有时,利用中央存储库的公共镜像会很有用。例如,在极少数情况下中央存储库已关闭,您可以指定使用存储库的镜像而不是中央存储库。此外,如果有一个地理上靠近你的镜子,使用公共镜子可以节省时间。 http://maven.apache.org/guides/mini/guide-mirror-settings.html存在多个镜像的列表。