为什么我的Maven在Ubuntu上这么慢?

时间:2010-02-18 14:26:40

标签: maven-2 performance maven

我在Ubuntu服务器上安装了Maven。

它似乎尝试了很多很多地方可供下载,但是下载超时,但超时需要很长时间,因此我的整个构建需要一个多小时。

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' in repository scala-tools.org (http://scala-tools.org/repo-releases)
Downloading: http://download.java.net/maven/2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom
[WARNING] Unable to get resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' from repository java.net (http://download.java.net/maven/2): Error transferring file: Connection timed out
Downloading: http://download.java.net/maven/1/org.apache.maven/poms/maven-repository-metadata-2.0.3.pom
[WARNING] Unable to get resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' from repository m1.java.net (http://download.java.net/maven/1): Error transferring file: Connection timed out
Downloading: http://download.java.net/maven/2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' in repository maven2-repository.dev.java.net (http://download.java.net/maven/2)
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' in repository repository.jboss.org (http://repository.jboss.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom

我的maven构建中只有两个repos set

<repository>
    <id>central</id>
    <name>Maven Repository Switchboard</name>
    <layout>default</layout>
    <url>http://repo1.maven.org/maven2</url>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
</repository>

<repository>
  <id>maven2-repository.dev.java.net</id>
  <name>Java.net Repository for Maven</name>
  <url>http://download.java.net/maven/2</url>
</repository>
<repository>
    <id>repository.jboss.org</id>
    <name>JBoss Repository</name>
    <url>http://repository.jboss.org/maven2</url>
</repository>

谢谢,菲利普

3 个答案:

答案 0 :(得分:9)

似乎Ubuntu的打包Maven版本附带/etc/maven2/settings.xml。查看此文件以查看它是否包含其他存储库。另请检查您正在使用的用户的文件~/.m2/settings.xml

PS:我真的不喜欢将.deb用于此类软件,并建议“手动”安装它(即只需下载存档,将其解压缩到某处,设置M2_HOME env变量并添加{{ 1}}到$M2_HOME/bin)。

答案 1 :(得分:3)

如果你是唯一一个参与该项目但是我建议安装Maifact存储库管理器(如Artifactory(http://www.jfrog.org/products.php)或Nexus),可能会有些过分。我不熟悉Nexus,但Artifactory安装很简单 - 只需解压缩就可以了(因为它带有嵌入式码头)。

为什么这会让你的Maven构建更快?

  • 存储库管理器采用比Maven核心本身更复杂的缓存
  • (至少使用Artifactory)您可以限制查询哪些组ID的Maven存储库。如果您需要从多个不同的Maven存储库中获取依赖关系,这会大大加快速度。

答案 2 :(得分:0)

确保您可以在Maven外部访问这些资源(在您的情况下是POM),如果机器没有网络连接(或无法解析主机名),它将会超时,并且需要很长时间时间(正如你所说)。

如果您不需要每次都重新下载资源,只需使用-o开关在“离线”模式下运行Maven。

另外,只是提示,您可能想要创建和安装POM,即使对于第三方JAR,然后将它们放在您的本地仓库中。这样Maven就不必每次都去管中获取资源(它将检查em,但它们将在本地解析)。

对于第三方或其他非Maven JAR,您可以使用install plugin进行安装。