Почему мой Maven такой медленный на Ubuntu?

У меня есть 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 ответа

Решение

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

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

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

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

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

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

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

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

Для сторонних или не связанных с Maven JAR-файлов вы можете установить их с помощью плагина установки.

Другие вопросы по тегам