it-swarm.com.de

Wie verhindern Sie, dass Maven versucht, auf http://repo.maven.Apache.org zuzugreifen?

Die Entwicklungsmaschine kann nicht auf das Internet zugreifen und benötigt etwa 60s bis zum Timeout. Wenn ich versuche zu bauen, sehe ich 

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

Ich habe jedoch folgendes in meinem 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>

Es wird immer versucht, zuerst zu repo.maven zu gelangen. Ich habe sogar versucht, D:\.m2\settings.xml hinzuzufügen

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

basierend auf http://maven.Apache.org/guides/mini/guide-mirror-settings.html versucht es dennoch zunächst repo.maven. Ich verwende Apache Maven 3.0.4 (r1232337; 2012-01-17 03: 44: 56-0500)

Ich kann -o nicht verwenden, da immer noch auf die lokale Datei repo.dev zugegriffen werden muss.


Hier ist mit den 'effektiven Einstellungen':

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

Alle Pom-Dateien erben von dem Maven-Super-POM http://maven.Apache.org/ref/3.0.4/maven-model-builder/super-pom.html , Das diesen Eintrag enthält :

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

Versuchen Sie, dies in Ihrem Pom einzustellen:

<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

Das zentrale Repository überschreiben

Wie es funktioniert:

Die meisten Organisationen müssen ein oder mehrere gemeinsam genutzte Repositorys einrichten, da nicht jeder bereitstellen oder einfach aus dem zentralen Maven-Repository herunterladen kann. Um Releases für die Verwendung in verschiedenen Umgebungen innerhalb ihres Netzwerks zu veröffentlichen, möchten die Organisatoren normalerweise das, was weitergeleitet wird, einrichten als internes Repository.

Wenn Sie diese Repositorys für Ihre Projekte verwenden, haben Sie zwei Möglichkeiten: Verwenden Sie sie als Spiegel oder lassen Sie das zentrale Repository überschreiben. Sie würden es als Spiegel verwenden, wenn es sich ausschließlich um eine Kopie des zentralen Repositorys handelt und die Entwickler dies in ihren Einstellungen konfigurieren können. Oder wie in diesem Fall, dass Sie den Zugriff auf das zentrale Repository für eine bessere Kontrolle verhindern möchten, das Repository von der Projektebene aus konfigurieren möchten, anstatt in den Einstellungen jedes Benutzers vorgenommen zu werden, oder Ihre eigenen Artefakte in dasselbe Repository aufnehmen möchten, sollten Sie die zentrale Station außer Kraft setzen Repository.

Ist an dieser Stelle auch sehr wichtig, den Auflösungsprozess zu berücksichtigen, der von den Maven-Abhängigkeiten ausgeführt wird, die zwei Hauptblockeinstellungen für Repositorys haben: 

  1. auf die Währungen bezogen werden in uns aufgeführt; 
  2. im Zusammenhang mit Plugins, die innerhalb der Knoten hinzugefügt oder während des Lebenszyklus verwendet werden. 

Die Lösung:

Als objektorientiertes Framework hat Maven alle POMs einen impliziten übergeordneten Super-POM. Unter seinen Definitionen legen Sie sowohl Abhängigkeiten als auch Plugins für erste Resolver-Repository-Konfigurationen fest:

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

Um das zentrale Repository mit Ihrem internen Repository zu überschreiben, müssen Sie ein Repository in einer Einstellungsdatei und/oder einem POM definieren, die den Bezeichner Central verwenden. Normalerweise muss dies sowohl als reguläres Repository als auch als Plugin-Repository definiert werden, um sicherzustellen, dass alle Zugriffe konsistent sind. Zum Beispiel:

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

Zugehöriger Link: Coderwall - Verhindern, dass Maven versucht, auf sein Central Repository zuzugreifen

21
helmedeiros

Stellen Sie im Block reporting/plugins Folgendes ein

    <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