Почему мой Maven такой медленный на Ubuntu? - PullRequest
5 голосов
/ 18 февраля 2010

У меня Maven на сервере Ubuntu.

Кажется, что пробуется много-много мест для загрузки, но время ожидания истекло, но время ожидания занимает много времени, поэтому вся моя сборка занимает более часа.

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

<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 ]

9 голосов
/ 18 февраля 2010

Кажется, что упакованная версия Ubuntu Maven поставляется с /etc/maven2/settings.xml.Посмотрите на этот файл, чтобы увидеть, содержит ли он дополнительные репозитории.Также проверьте файл ~/.m2/settings.xml пользователя, которого вы используете.

PS: Мне не очень нравится использовать .deb для такого рода программного обеспечения и рекомендую устанавливать его "вручную" (т.е. просто скачать архивраспакуйте его куда-нибудь, установите переменную M2_HOME env и добавьте $M2_HOME/bin к $PATH).

3 голосов
/ 24 февраля 2010

Может быть, излишне, если вы работаете над проектом только один, но я бы рекомендовал установить менеджер репозитория Maven, такой как Artifactory (http://www.jfrog.org/products.php) или Nexus. Я не знаком с Nexus, но установка Artifactory не работает просто - просто расстегните молнию, и все готово (так как она поставляется со встроенным причалом).

Почему это сделает ваш Maven быстрее?

  • Менеджеры репозитория используют более сложное кэширование, чем само ядро ​​Maven
  • (по крайней мере, с Artifactory) Вы можете ограничить, какие репозитории Maven запрашиваются, для каких идентификаторов групп. Это значительно ускоряет процесс, если вам нужно получить зависимости из нескольких разных репозиториев Maven
0 голосов
/ 18 февраля 2010

Убедитесь, что вы можете получить доступ к этим ресурсам (в вашем случае POM) за пределами Maven, например, если у компьютера нет подключения к сети (или он не может разрешить имена хостов), время ожидания истекло, и это займет много время (как вы заметили).

Если вам не нужно каждый раз перезагружать ресурсы, просто запустите Maven в автономном режиме с ключом -o.

Кроме того, просто совет, вы можете создать и установить POM, даже для сторонних JAR, а затем получить их в своем локальном репо. Таким образом, Maven не нужно будет каждый раз выходить в трубы, чтобы получать ресурсы (он будет проверять их, но они будут решаться локально).

Для сторонних JAR-файлов или файлов, отличных от Maven, вы можете установить их с помощью install plugin .

...