2008-12-12 5 views
13

Est-il possible d'héberger un référentiel Maven servant les artefacts (au moins les fichiers jar) du système de publication de fichiers de SourceForge (puisqu'ils sont déjà là et que SF fournit des statistiques de téléchargement) ?Configuration d'un référentiel Maven à l'aide des serveurs de fichiers SourceForge

Tous les dépôts que j'ai vus utilisent la même disposition de répertoire, mais est-ce un must? URL de téléchargement devraient ressembler davantage à http://sf.net/something.cgi?file-id=1234567

Il n'y aurait qu'un petit nombre de fichiers du projet, de sorte que le maintien de l'URL de téléchargement dans une sorte de fichier XML de métadonnées référentiel semi-manuelle est toujours une option .

Note: C'est un peu la question opposée à How can I deploy artifacts from a Maven build to the SourceForge File Release System?

Précision: Je veux mettre les fichiers dans le système de sortie du fichier (Project Téléchargements), pas le projet d'espace web ou le dépôt subversion .

Répondre

3

Oui, vous pouvez. Mais c'est un peu compliqué:

Si vous regardez un projet comme celui-ci http://jwebunit.sourceforge.net/m2-repo/, vous verrez qu'ils exposent un repo maven parfaitement légal. Voici les étapes pour le faire:

Théoriquement, vous pouvez simplement ajouter la partie pertinente de votre dossier ~/.m2/repo à la racine de svn sur le projet en question (dans un dossier appelé m-2repo par exemple comme jwebunit a fait). Sourceforge expose la structure svn complète accessible via le web, il y a donc votre repo.

Mais; le problème est que maven exige que les dépôts distants contiennent des sommes de contrôle MD5 de tous les éléments. Lorsque vous lancez "maven install" vers un repo de fichier lolcal, vous ne recevrez pas ces checksums.

La façon dont j'ai résolu cela localement est de configurer apache/webdav sur un dossier spécifique sur ma machine. J'utilise ensuite ce dossier comme cible pour "mvn deploy". Ensuite, je garde juste ce dossier complet dans subversion sur sourceforge.

+0

Est-ce vraiment le svn du projet? Ou leur espace web? Hébergement repostories dans l'espace Web est contre leurs conditions de service, je crois (a rencontré le problème en essayant d'héberger un repo mercurial là-bas). De toute façon, je veux mettre les artefacts dans leur section de libération de fichiers (téléchargements de projet). – Thilo

0

Très belle solution, merci à krosenvold. De plus, vous pouvez essayer de générer des checksums avec cette partie de pom:

<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

Désolé, mais je ne vois pas un moyen de relier deux questions ensemble. J'ai ajouté quelques informations à une question similaire (duplicate?) Ici. Il montre comment vous pouvez déployer à SF sans avoir besoin de trucs ou de plugins.

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

+0

Oui, cette page est aussi liée à dans la question elle-même (comme "kind of the opposite"). – Thilo

+0

Oups. Désolé Thilo. Devrais-je supprimer ce post? – Gray

Questions connexes