2008-12-12 9 views
13

Ist es möglich, ein Maven-Repository zu hosten, das die Artefakte (zumindest die JAR-Dateien) aus SourceForges Dateifreigabesystem bereitstellt (da diese bereits vorhanden sind und SF Downloadstatistiken zur Verfügung stellt)? ?Einrichten eines Maven-Repositorys mit den SourceForge-Dateiservern

Alle Repositories, die ich gesehen habe, verwenden das gleiche Verzeichnislayout, aber ist das ein Muss? Download-URLs würde mehr aussehen wie http://sf.net/something.cgi?file-id=1234567

Es würde nur eine kleine Anzahl von Dateien im Projekt, so dass in einer Art Repository Metadaten-XML-Datei semi-manuell die Download-URL beibehalten ist immer noch eine Option .

Hinweis: Dies ist eine Art der gegenüberliegenden Frage zu How can I deploy artifacts from a Maven build to the SourceForge File Release System?

Klarstellung: Ich möchte die Dateien im Datei-Release-System (Projekt Downloads) setzen, das Projekt nicht Webspace oder das Subversion-Repository .

Antwort

3

Ja können Sie. Aber es ist ein bisschen verschachtelt:

Wenn Sie ein Projekt wie dieses betrachten http://jwebunit.sourceforge.net/m2-repo/ Sie sehen, dass sie eine völlig legale Maven Repo ausgesetzt sind. Dies sind die Schritte, um es zu tun:

Theoretisch könnten Sie einfach den relevanten Teil Ihres ~/.m2/Repo-Ordners zum Stamm von svn auf dem betreffenden Projekt hinzufügen (in einem Ordner namens m-2repo zum Beispiel wie jwebunit hat getan). Sourceforge macht die gesamte svn-Struktur verfügbar, die über das Web zugänglich ist, also gibt es dein Repo.

Aber; Das Problem besteht darin, dass maven erfordert, dass Remote-Repositorys MD5-Prüfsummen aller Elemente enthalten. Wenn Sie "maven install" in Richtung eines lolcal-Datei-Repos ausführen, werden diese Prüfsummen nicht generiert.

Die Art, wie ich dies lokal gelöst habe, ist Apache/Webdav in einem bestimmten Ordner auf meinem Rechner einzurichten. Ich verwende dann diesen Ordner als Ziel für "mvn deploy". Dann behalte ich diesen vollständigen Ordner in subversion auf Sourceforge.

+0

Ist das wirklich der SVN des Projekts? Oder ihr Webspace? Hosting-Repo-Stores im Webspace sind gegen ihre Nutzungsbedingungen, glaube ich (stieß auf das Problem beim Versuch, dort ein Mercurial Repo zu hosten). So oder so, ich möchte die Artefakte in ihren Datei-Release-Bereich (Projekt-Downloads) setzen. – Thilo

0

Sehr schöne Lösung, dank Krosenvold. Darüber hinaus können Sie versuchen Prüfsummen mit diesem Teil von pom zu generieren:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <executions> 
     <execution> 
      <goals> 
       <goal>install</goal> 
      </goals> 
      <configuration> 
       <createChecksum>true</createChecksum> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
0

Traurig über diese, aber ich sehe keinen Weg zusammen zwei Fragen zu verknüpfen. Ich habe hier einige Informationen zu einer ähnlichen (Duplikate?) Frage hinzugefügt. Es zeigt, wie Sie das Deployment in SF durchführen können, ohne irgendwelche Pom-Tricks oder Plugins zu benötigen.

How can I deploy artifacts from a Maven build to the SourceForge File Release System?

+0

Ja, diese Seite ist auch in der Frage selbst verlinkt (als "Art des Gegenteils"). – Thilo

+0

Hoppla. Entschuldigung Thilo. Soll ich diesen Beitrag löschen? – Gray

Verwandte Themen