Comment empêchez-vous maven d'essayer d'accéder http://repo.maven.apache.org?

La machine de développement ne peut pas accéder à internet, et prend environ 60s au délai d'attente. Quand j'essaie de construire, je vois

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

Cependant, j'ai ce qui suit dans mon 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>

Il essaie toujours d'aller au repo.maven d'abord. J'ai même essayé d'ajouter à D:.m2paramètres.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>

Basé sur http://maven.apache.org/guides/mini/guide-mirror-settings.html pourtant, il continue à essayer repo.maven d'abord. J'utilise Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)

Je ne peux pas utiliser -o car il doit toujours accéder au repo local.dev.


Voici avec "efficace-paramètres":

D:UserschloeProjectsteamconfluence-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:.m2repository</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] ------------------------------------------------------------------------
29
demandé sur Chloe 2012-10-09 01:07:09

3 réponses

Tous les fichiers pom héritent du Maven Super POM http://maven.apache.org/ref/3.0.4/maven-model-builder/super-pom.html qui contient cette entrée:

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

Essayez de définir ceci dans votre pom:

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

<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <url>http://repo.dev.bloomberg.com/content/groups/public</url>
        <releases><enabled>false</enabled></releases>
    </pluginRepository>
</pluginRepositories>
37
répondu Devin Jones 2018-02-06 12:22:50

Remplacer le référentiel central

Comment ça marche:

La plupart des organisations devront configurer un ou plusieurs référentiels partagés, car tout le monde ne peut pas déployer ou simplement télécharger à partir du Maven central repository.To publier des versions pour une utilisation dans différents environnements au sein de leur réseau, les organisations voudront généralement configurer ce qu'on appelle un référentiel interne.

Lorsque vous utilisez ce référentiel pour vos projets, il y a deux choix: miroir, ou remplacer le référentiel central. Vous pouvez l'utiliser comme un miroir s'il est destiné à être une copie du référentiel central exclusivement, et si c'est acceptable pour les développeurs de configurer leurs paramètres. Ou comme dans ce cas que vous voulez empêcher l'accès au référentiel central pour un contrôle accru, pour configurer le référentiel à partir du niveau du projet plutôt que dans les paramètres de chaque utilisateur, ou pour inclure vos propres artefacts dans le même référentiel, vous devez remplacer le référentiel central.

En outre, il est très important d'avoir à l'esprit, à ce stade, le processus de résolution mené par les dépendances maven, qui ont deux paramètres de blocs principaux pour les dépôts:

  1. liés aux décences seront listés en nous;
  2. liés aux plugins qui seront ajoutés dans les nœuds ou utilisés pendant le cycle de vie.

La Solution:

En tant que framework orienté objet Maven a tous les POMs ont un parent implicite le Super POM. Sous ses définitions, définissez à la fois les dépendances et les plugins d'abord les configurations de référentiels de résolveur:

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

Pour remplacer le référentiel central par votre référentiel interne, vous devez définir un référentiel dans un fichier de paramètres et / ou POM qui utilise l'identificateur central. Habituellement, cela doit être défini à la fois comme un référentiel régulier et un référentiel de plug-ins pour s'assurer que tous les accès sont cohérents. Par exemple:

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

Lien connexe: Coderwall-arrêter maven de essayer d'accéder à son référentiel Central

19
répondu helmedeiros 2014-02-27 22:25:41

Essayez de définir ce qui suit dans le bloc reporting/plugins

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.9</version>
        <configuration>
            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
    </plugin>
0
répondu Sreesankar 2016-08-22 17:44:38