web-dev-qa-db-fra.com

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 met environ 60 secondes à expirer. 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 les éléments suivants 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 d’abord sur repo.maven. J'ai même essayé d'ajouter à 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>

basé sur http://maven.Apache.org/guides/mini/guide-mirror-settings.html mais il continue d’essayer d’abord repo.maven. 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 fichier repo.dev local.


Voici avec «réglages effectifs»:

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

Tous les fichiers pom héritent du maven super POM http://maven.Apache.org/ref/3.0.4/maven-model-builder/super-pom.html Contenant 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 placer 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>
38
Devin Jones

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 ni déployer, ni simplement télécharger à partir du référentiel Maven central. Pour publier des versions à utiliser dans différents environnements de leur réseau, les organisations souhaitent généralement configurer ce qui est mentionné. comme un référentiel interne.

Lorsque vous utilisez ces référentiels pour vos projets, vous avez le choix entre deux possibilités: utilisez-le en tant que miroir ou remplacez-le par le référentiel central. Vous l'utiliseriez comme un miroir s'il s'agit d'une copie du référentiel central exclusivement et s'il est acceptable de demander aux développeurs de le configurer dans leurs paramètres. Ou, comme dans ce cas, vous souhaitez 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 dépôt.

Il est également très important de garder à l’esprit, à ce stade, le processus de résolution conduit par les dépendances maven, qui ont deux paramètres de blocage principaux pour les référentiels: 

  1. liés à la décence sera répertorié en nous; 
  2. liés aux plugins qui seront ajoutés au sein des nœuds ou utilisés au cours du cycle de vie. 

La solution:

En tant que cadre orienté objet, Maven dispose que tous les POM ont un parent implicite, le Super POM. Sous ses définitions, définissez les dépendances et les configurations des premiers 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 un POM utilisant l'identificateur central. En règle générale, cela doit être défini à la fois comme un référentiel normal et un référentiel de plug-in pour garantir la cohérence de tous les accès. 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 - Empêcher Maven d’essayer d’accéder à son référentiel central

21
helmedeiros

Essayez de définir les éléments suivants 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
Sreesankar