Как остановить maven от попытки доступа к http://repo.maven.apache.org?

Машина разработки не может получить доступ к Интернету и займет от 60 секунд до таймаута. Когда я пытаюсь построить, я вижу

Downloading: http://repo.maven.apache.org/maven2/com/google/gsa-connector/2.8.0/gsa-connector-2.8.0.pom

Однако в моем POM есть следующее:

    <repository>
      <id>bb-nexus</id>
      <url>http://repo.dev.bloomberg.com/content/groups/public</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
    <repository>
      <id>nexus-3rdparty</id>
      <url>http://repo.dev.bloomberg.com/content/repositories/thirdparty/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>

Он всегда пытается перейти на repo.maven в первую очередь. Я даже пытался добавить к D: \. M2\settings.xml

<settings>
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://repo.dev.bloomberg.com/content/groups/public</url>
    </mirror>
  </mirrors>

на основе http://maven.apache.org/guides/mini/guide-mirror-settings.html, но он по-прежнему пытается сначала выполнить repo.maven. Я использую Apache Maven 3.0.4 (r1232337; 2012-01-17 03: 44: 56-0500)

Я не могу использовать -o, потому что ему еще нужно получить доступ к локальному repo.dev.


Здесь приведены "эффективные настройки":

D:\Users\chloe\Projects\team\confluence-plugin>mvn help:effective-settings
[INFO] Scanning for projects...
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/maven-metadata.xml
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-install-plugin/maven-metadata.xml from/to central (
http://repo.maven.apache.org/maven2): Connection to http://repo.maven.apache.org refused
...
[INFO]
[INFO] --- maven-help-plugin:2.1.1:effective-settings (default-cli) @ bb-confluence-plugin ---
[INFO]
Effective user-specific configuration settings:

<?xml version="1.0" encoding="UTF-8"?>
...
<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca
tion="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <localRepository xmlns="http://maven.apache.org/SETTINGS/1.1.0">d:\.m2\repository</localRepository>
  <pluginGroups xmlns="http://maven.apache.org/SETTINGS/1.1.0">
    <pluginGroup>org.apache.maven.plugins</pluginGroup>
    <pluginGroup>org.codehaus.mojo</pluginGroup>
  </pluginGroups>
</settings>

[INFO] ------------------------------------------------------------------------

Ответ 1

Все файлы pom наследуются от maven super POM http://maven.apache.org/ref/3.0.4/maven-model-builder/super-pom.html который содержит эту запись:

<repositories>
<repository>
  <id>central</id>
  <name>Central Repository</name>
  <url>http://repo.maven.apache.org/maven2</url>
  <layout>default</layout>
  <snapshots>
    <enabled>false</enabled>
  </snapshots>
</repository>

Попробуйте установить это в своей папке:

<repositories>
<repository>
  <id>central</id>
  <url>http://repo.dev.bloomberg.com/content/groups/public</url>
  <releases>
    <enabled>false</enabled>
  </releases>
</repository>

<pluginRepositories>

    <pluginRepository>
        <id>central</id>
        <url>http://repo.dev.bloomberg.com/content/groups/public</url>
        <releases><enabled>false</enabled></releases>
    </pluginRepository>
...

Ответ 2

Переопределение центрального репозитория

Как это работает:

В большинстве организаций необходимо настроить один или несколько общих репозиториев, поскольку не каждый может развернуть или просто загрузить из центрального репозитория Maven. Чтобы публиковать выпуски для использования в разных средах в своей сети, организация, как правило, захочет настроить что называется внутренним репозиторием.

При использовании этих репозиториев для ваших проектов есть два варианта: использовать его как зеркало или переопределить центральный репозиторий. Вы использовали бы это как зеркало, если оно предназначено исключительно для копирования центрального репозитория, и если это приемлемо, чтобы разработчики настраивали это в своих настройках. Или как в этом случае вы хотите запретить доступ к центральному репозиторию для большего контроля, для настройки репозитория с уровня проекта, а не в каждом пользовательском параметре, или для включения ваших собственных артефактов в один и тот же репозиторий, вы должны переопределить центральный хранилище.

Кроме того, очень важно иметь в виду, на данный момент, процесс разрешения, выполняемый зависимостями maven, которые имеют две основные блоки для репозиториев:

  • связанные с приличиями, будут перечислены внутри нас;
  • связанных с плагинами, которые будут добавляться в узлы или использоваться в течение жизненного цикла.

Решение:

Как объектно-ориентированная структура Maven имеет все POM, у которых неявный родитель - Super POM. В его определениях устанавливаются обе конфигурации зависимостей и плагинов: первая конфигурация репозитория:

<repositories>
    <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>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Maven Plugin Repository</name>
      <url>http://repo1.maven.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories> 

Чтобы переопределить центральный репозиторий с помощью внутреннего репозитория, вы должны определить репозиторий в файле настроек и/или POM, который использует центральный идентификатор. Обычно это должно быть определено как регулярный репозиторий, так и репозиторий плагинов для обеспечения согласованности каждого доступа. Например:

<repositories>
    <repository>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <layout>default</layout>
      <url>http://repo.dev.bloomberg.com/content/groups/public</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Maven Plugin Repository</name>
      <url>http://repo.dev.bloomberg.com/content/groups/public</url>
      <layout>default</layout>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories> 

Ссылки по теме: Coderwall - остановка maven от попытки доступа к ее центральному репозиторию

Ответ 3

Попробуйте установить следующее в блоке отчетов/плагинов

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.9</version>
        <configuration>
            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
    </plugin>