2009-07-21 13 views
4

Ich benutze Maven2 und ich kann anscheinend keine Plugins in meinem Repository finden. Ich erhalte Fehler wieWoher weiß Maven2, wo man Plugins findet?

Repository Metadaten für: 'org.apache.maven.plugins' konnte nicht auf Repository gefunden: myrepo

wo myrepo der Name meines Repository ist.

Meine Frage ist, woher weiß Maven, wo man Plugins findet? Es gibt eine Referenz in meinem Fehler zu Metadaten, welche Metadaten werden wo erwartet und welches Format muss es nehmen? Ich habe nicht viel Glück bisher hatte für die Dokumentation suchen ...

(I in der einfachen Antwort interessiert mich nicht die zentrale Repo zu verwenden, ich möchte wissen, warum myrepo nicht funktioniert.)

Danke!

Antwort

6

In der Wurzel jedes Artefakts (relativer Pfad zum Repository-Stamm [groupId]/[artifactId]) erwartet Maven eine maven-metadata.xml-Datei. Es verwendet diese Datei, um die verfügbaren Versionen, die neueste Version und die freigegebene Version zu ermitteln.

Zum Beispiel common-logging's metadata from repo1 listet alle verfügbaren Versionen und sagt uns, die Release-Version ist 1.1.1 ab 28. November 2008.

<?xml version="1.0" encoding="UTF-8"?><metadata> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.1.1</version> 
    <versioning> 
    <release>1.1.1</release> 
    <versions> 
     <version>1.0</version> 
     <version>1.0.1</version> 
     <version>1.0.2</version> 
     <version>1.0.3</version> 
     <version>1.0.4</version> 
     <version>1.1</version> 
     <version>1.1.1</version> 
    </versions> 
    <lastUpdated>20071128191817</lastUpdated> 
    </versioning> 
</metadata> 

Maven die Metadaten für jede Remote-Repository auf Ihrem lokalen Repository herunterladen (mit der Name maven-metadata- [Repo-Name] .xml), so dass es die verfügbaren Versionen prüfen kann, ohne jedes Repository jedes Mal zu treffen. Wenn Sie Maven zwingen wollen, die Metadaten erneut abzurufen, können Sie dies mit dem Schalter "-U" in der Befehlszeile tun.

Wenn Sie Ihr eigenes Repository haben, muss es diese Art von Metadaten veröffentlichen, damit Maven feststellen kann, ob eine der verfügbaren Versionen die richtige ist. Der einfachste Weg dazu besteht in der Verwendung eines Repository-Managers wie Nexus oder Artifactory, der die Metadaten für Sie verwaltet.

+0

Dank Rich, das war mein Verdacht ... muss bestätigen – Brabster

Verwandte Themen