Maven Download from SF.net


Flattr this

Motivation

Die OpenSource Entwickler welche ein Maven Plugin Projekt auf Sourceforge.net hosten und es ihren Nutzern maven like zum Download anbieten möchten, haben damit seit der Geburt von maven ein Problem. Sie müssen ihre Artifakte im File Release System (FRS) des Sourceforge Portals hosten. Ein Hosting im Bereich der Projekt Homepage auf Sourceforge ist nicht gestattet.

Hintergrund dieser Regelungen scheint die Lastverteilung beim Download zu sein. Das FRS von Sourceforge ist optimiert auf eine schnelle Verbreitung der Artifakte über diverse in der Welt verteilte Proxies. Bei der Web Area in welcher die Hompages der Projekte gehostet werden, scheinen andere Mechanismen im Einsatz zu sein als im FRS.

Aber auch der automatische Upload der Artifakte per Maven ist nicht trivial, da Sourceforge bestimmte Sicherheitsrichtlinien aufgesetzt hat, welche den Projekten eine entsprechende Sicherheit garantieren sollen.

Lösung für den Download

Nachdem ich eine Weile nach Lösungen gesucht hatte fand ich von Brian Matthews das Projekt wagon-sf auf sourceforge. Allerdings hatte Brian seinen Schwerpunkt wohl auf andere Projekte verlagert, denn es waren keine Artifakte zum Download verfügbar. Durch das Projekt auf die richtige Spur gebracht schrieb ich mir daraufhin einen eigenen Maven Wagon. Dieser ist als Unterprojekt wagon-http-sourceforge unter meiner Maven Plugin Sammlung zu finden.

Lösung für den Upload

Hierbei konnte ich auf Maven Boardmittel zurück greifen. Es ist lediglich die pom.xml um folgende, angepasste Einträge zu erweitern:

<distributionManagement>
<!– use the following if you’re not using a snapshot version. –>
<repository>
<id>sourceforge-sf-mvn-plugins</id>
<name>FRS Area</name>
<uniqueVersion>false</uniqueVersion>
<url>sftp://web.sourceforge.net/home/frs/project/s/sf/<your_project>/<your_folder></url>
</repository>
<site>
<id>sourceforge-sf-mvn-plugins</id>
<name>Web Area</name>
<url>
sftp://web.sourceforge.net/home/project-web/s/sf/sf-mvn-plugins/htdocs/${artifactId}
</url>
</site>
</distributionManagement>

<build>

<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>1.0-beta-6</version>
</extension>
</extensions>

</build>

Um die Zugangsdaten an den Upload Wagon zu übermitteln, kann man in der lokalen settings.xml folgende Einträge vornehmen (die settings.xml muss vor lesenden Zugriffen anderer Nutzer geschützt werden!):

<servers>
<server>
<id>sourceforge-sf-mvn-plugins</id>
<username>loginname,projectname</username>
<password>your-password</password>
</server>
</servers>

Die fett geschriebene ID ist natürlich beliebig wählbar, sie muss nur an allen Stellen gleich sein – sonst funktioniert es nicht. Das Komma zwischen dem LoginNamen und dem Projektnamen bei der Angabe des username ist ebenfalls wichtig.

Post a comment or leave a trackback: Trackback URL.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: