2016-08-30 7 views
0

Wir haben einen Nexus-Server, der die gemeinsame maven-public Repository-Gruppe hat, die jedes externe Proxy-Repository enthält (z.B. maven-central). Außerdem haben wir ein lokal gehostetes Repository. Nennen wir es MyProjectRepository. Es ist in einem Release-Repo und einem Snapshot-Repo aufgeteilt.Warum kann maven kein Artefakt in einem gehosteten Repository finden?

Also, momentan sieht es wie folgt aus:

  • MyProjectRepository
  • MyProjectRepository-Snapshots
    • ArtifactOne
      • Snapshot-5
      • ...
      • Snapshot- 1
    • ArtifactTwo
      • Snapshot-3
      • ...
      • Snapshot-1

Okay, braucht ArtifactTwo ArtifactOne als Abhängigkeit. So habe ich dies in den Abhängigkeiten Abschnitt hinzugefügt:

<dependency> 
     <groupId>com.company</groupId> 
     <artifactId>artifactone</artifactId> 
     <version>0.0.5</version> 
    </dependency> 

ich das Repository Abschnitt wie folgt konfiguriert haben:

<repository> 
     <id>myprojectrepositoryss</id> 
     <name>MyProjectRepository Snapshots</name> 
     <url>http://mylocalnexus.com/nexus/repository/MyProjectRepository-Snapshots/</url> 
     <releases> 
      <enabled>false</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 

Meine settings.xml Spiegel-Abschnitt sieht wie folgt aus:

<mirror> 
     <!--This sends everything else to /public --> 
     <id>nexus</id> 
     <mirrorOf>external:*, !myprojectrepositoryss</mirrorOf> 
     <url>http://mylocalnexus.com/nexus/repository/maven-public/</url> 
    </mirror> 

Mein settings.xml Profile-Abschnitt wie folgt aussehen:

<profile> 
    <id>nexus</id> 
    <!--Enable snapshots for the built in central repo to direct --> 
    <!--all requests to nexus via the mirror --> 
    <repositories> 
    <repository> 
     <id>central</id> 
     <url>http://central</url> 
     <releases><enabled>true</enabled></releases> 
     <snapshots><enabled>true</enabled></snapshots> 
    </repository> 
    </repositories> 
<pluginRepositories> 
    <pluginRepository> 
     <id>central</id> 
     <url>http://central</url> 
     <releases><enabled>true</enabled></releases> 
     <snapshots><enabled>true</enabled></snapshots> 
    </pluginRepository> 
    </pluginRepositories> 
</profile> 

Obwohl ich alles eingerichtet habe, wie im Tutorial beschrieben, gibt meine IDE an, dass das Artefakt in der gegebenen Abhängigkeit nicht gefunden werden kann.

fehlgeschlagen Ziel auf Projekt ArtifactTwo auszuführen: nicht Abhängigkeiten für Projekt com.company:ArtifactTwo:jar:0.0.3-SNAPSHOT lösen kann: Failure com.company:artifactone:jar:0.0 zu finden. 5 in http://mylocalnexus.com/nexus/repository/maven-public/ wurde in das lokale Repository zwischengespeichert, Auflösung erneut versucht wird, wird erst das Aktualisierungsintervall von Nexus oder Updates

Warum in „maven-public“ für die Abhängigkeit ist es suchen gezwungen ist, abgelaufen ist? Hat jemand eine Ahnung, wie man das zur Arbeit bringt?

Antwort

0

Es wird in der maven-public-Gruppe wie gewünscht gesucht und in der Spiegel-URL in der Einstellungsdatei konfiguriert.

Sie müssen nur Ihre Projekt-Repositorys zu der Maven-Public-Repository-Gruppe hinzufügen, und es wird gut funktionieren.

Verwandte Themen