ich stecke grade bei einem Problem fest. Ich deploye meine Maven-Artifacts via SCP auf meinen vServer. Das Maven Repository ist per HTTP erreichbar. Wenn ich mit m2eclipse jedoch den Repository-Index aktualisieren will, bekomme ich folgende Fehlermeldung:
Code:
Unable to update index
Folglich kann ich meine Artifacts auch nicht in anderen Projekten nutzen. Wenn ich in die Log-Datei von Eclipse schaue, bekomme ich folgende Fehlermeldung heraus (unnötiges rausgekürzt):
Code:
!ENTRY org.maven.ide.eclipse 4 0 2011-02-23 00:42:12.814
!MESSAGE Unable to update index for techspread.snapshots|http://repo.techspread.de/snapshots
!STACK 0
java.io.IOException: Server returned status code 404: Not Found
[...]
Caused by: java.io.IOException: Server returned status code 404: Not Found
[...]
Ich kann mir den 404er-Fehler jedoch absolut nicht erklären - einen Proxy o.ä. nutze ich nicht. Wenn ich mein Repository mit dem offiziellen von Maven vergleiche, kann ich lediglich den Unterschied feststellen, dass einige SHA1- und MD5-Dateien auch Pfade beinhalten (beim offiziellen Maven-Repo), bei mir stehen überall nur die Hashes drin.
Muss das Directory-Listing in einer ganz bestimmten Form vorliegen, sprich muss ich meinem Apache Webserver eine ganz bestimmte Form beibringen für das Listing? Das ist der zweite kleine Unterschied zwischen meinem Repo und dem von offiziellen Maven-Repo.
Ich hoffe, es kann mir hier jemand helfen, ich habe schon unzählige Stunden damit verbracht, im Internet eine Fehlerlösung zu suchen :noe:
Ach manchmal kann die Fehlerlösung doch recht schnell vorangebracht werden. In dem Apache-Log steht drin, dass die Ressource .index nicht gefunden werden konnte. Leider weiß ich nicht, wie man diese index-Datei erstellen muss. Kann mir da jemand weiterhelfen?
Der Index ist nicht wichtig um die Artifakte nutzen zu können, ist eine hilfe wenn man zB. wie das m2eclipse plugin nach Artifakten suchen möchte, inkl. Vervollständigung.
Kannst du denn deine Artifakte aus deinem Repo referenzieren und werden sie gefunden?
du solltest einen der verfügbaren Repository Manager für Maven einsetzen (Artifactory, Nexus, Archiva). Diese generieren den von m2e benötigten Index [1].
@Maki: Leider nein, das ist ja mein Problem :-/
@Hexx: Archiva gefällt mir zwar, jedoch lastet der mir meinen vServer zu sehr aus. Und andere verwenden doch auch einfache Apache Webserver als Repo, wieso funzt das so nicht?
Bei den großen öffentlichen Repositories sitzt Apache meist als Frontend vor dem eigentlichen Repository Manager. Aber wie maki schon sagte: Der index ist nur für das komfortable suchen und finden via m2e nötig. Das Repository an sich funktioniert auch ohne.
Ich persönlich nutze Nexus. Unter anderem auch deswegen, weil es den geringsten Bedarf an Arbeitspeicher hat.
Verstehe ich das richtig, dass m2clipse ohne die .index-Datei das Artifact nicht findet, prinzipiell aber verwenden können sollte, wenn ich es manuell hinzufüge...? Wird gleich ausprobiert und Nexus schaue ich mir auch mal an (der RAM-Hunger ist bei mir das einzige Argument gegen Archiva - CPU-Leistung hat der vServer genug).
Verstehe ich das richtig, dass m2clipse ohne die .index-Datei das Artifact nicht findet, prinzipiell aber verwenden können sollte, wenn ich es manuell hinzufüge...?
Aber wenn ich dennoch mein Repository durchsuchen könnte, wäre das schon nett... Gibt's da nicht eine simple Lösung per PHP? Sonst schau ich mir mal an, was beim offiziellen Maven-Repo so in .index produziert wird und bau das nach
Ein wenig Offtopic, aber was für einen vServer hast du und was läuft dort drauf? Ich überlege zur Zeit auch ob ich mir einen vServer für Hudson/Nexus/Sonar/SVN/Database holen soll.
Moin mvitz. Ich habe diesen vServer. Kann ich aber für RAM-lastige CI-Systeme nicht empfehlen, da sollte man schon mindestens 2GB dedizierten RAM haben. Kann netcup grundsätzlich sehr empfehlen.