Comment puis-je déployer des artefacts à partir d'un Maven build pour le SourceForge Fichier Système de Libération?

StackOverflow https://stackoverflow.com/questions/16487

  •  08-06-2019
  •  | 
  •  

Question

Je suis à l'aide de SourceForge pour certains projets Open Source et je veux automatiser le déploiement des rejets dans l'SourceForge Fichier Système de Libération.J'utilise Maven pour ma fabrique et la norme SFTP mécanisme de déploiement ne semble pas fonctionner à moins que vous faites un peu de préparation manuelle de travail.J'ai rencontré quelques anciens messages sur d'autres forums, ce qui suggère que la seule approche consiste à écrire un Wagon spécialement pour SourceForge.

Personne n'a eu toute récente expérience avec cela?

Était-ce utile?

La solution

Je ne suis pas en mesure de tester pour confirmer, mais je crois que c'est possible sans l'écriture de tous les plugins.

Vous pouvez déployer sur SourceForge à l'aide de SCP, et le maven-déployer-plugin peut être configuré pour utiliser SCP donc, il faut travailler.Vous pouvez également déployer votre site de SourceForge via SCP.

Vous devez configurer le serveur SourceForge dans votre settings.xml l'utilisation d'un "combiné" nom d'utilisateur avec une virgule comme séparateur.Avec ces références:

SourceForge username: foo
SourceForge user password: secret
SourceForge project name: bar
Path: /home/frs/project/P/PR/PROJECT_UNIX_NAME/ 
    - Substitute your project UNIX name data for /P/PR/PROJECT_UNIX_NAME 

Le serveur élément devrait ressembler à ceci:

<server>
  <id>sourceforge</id>
  <username>foo,bar</username>
  <password>secret</password>
</server>

Et le distributionManagement section dans votre POM devrait ressembler à ceci:

<!-- Enabling the use of FTP -->
<distributionManagement>
  <repository>
    <id>ssh-repository</id>
    <url>
scpexe://frs.sourceforge.net:/home/frs/project/P/PR/PROJECT_UNIX_NAME</url>
  </repository>
</distributionManagement>

Enfin déclarer que ssh-externe doit être utilisé:

<build>
  <extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-ssh-external</artifactId>
       <version>1.0-alpha-5</version>
    </extension>
  </extensions>
</build>

Si cela ne fonctionne pas, vous pouvez être en mesure d'utiliser l'approche recommandée dans le site de référence ci-dessus, c'est à direcréer un shell shell.sourceforge.net avec votre nom d'utilisateur et de groupe de projet:

ssh -t <username>,<project name>@shell.sf.net create

Ensuite, utilisez shell.sourceforge.net (au lieu de web.sourceforge.net) dans l'URL de votre site dans le diestributionManagement section:

<url>scp://shell.sourceforge.net/home/frs/project/P/PR/PROJECT_UNIX_NAME/</url>

Autres conseils

J'ai téléchargé un exemple de sourceforge.net à: http://sf-mvn-plugins.sourceforge.net/example-1jar-thinlet/

Vous pouvez consulter via svn - de sorte que vous pouvez voir comment utiliser les plugins pour upload et download de et à sourceforge.net système de fichiers de la zone et du site web.

Les principaux points à télécharger sont l'utilisation de sftp:

Ajouter ce code similaire à la votre pom.xml

<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/sf-mvn-plugins/m2-repo</url>
                </repository>
                <site>
                    <id>sourceforge-sf-mvn-plugins</id>
                    <name>Web Area</name>
                    <url>
                        sftp://web.sourceforge.net/home/groups/s/sf/sf-mvn-plugins/htdocs/${artifactId}
                    </url>
                </site>
</distributionManagement>

Ajouter un code similaire pour settings.xml

   <server>
      <id>sourceforge-sf-mvn-plugins-svn</id>
      <username>tmichel,sf-mvn-plugins</username>
      <password>secret</password>
    </server>

    <server>
      <id>sourceforge-sf-mvn-plugins</id>
      <username>user,project</username>
      <password>secret</password>
    </server>

Le point principal pour le téléchargement est d'utiliser le wagon-http-sourceforge plugin maven - s'il vous plaît voir:sf-mvn-plugins.sourceforge.net/wagon-http-sourceforge/FAQ.html

Veuillez ajouter le code suivant à votre pom.xml

    <repositories>
        <repository>
            <id>sourceforge-svn</id>
            <name>SF Maven Plugin SVN Repository</name>
            <url>http://sf-mvn-plugins.svn.sourceforge.net/svnroot/sf-mvn-plugins/_m2-repo/trunk</url>
        </repository>
    </repositories>


    <pluginRepositories>
        <pluginRepository>
            <id>sourceforge-frs</id>
            <name>SF Maven Plugin Repository</name>
            <url>http://sourceforge.net/projects/sf-mvn-plugins/files/m2-repo</url>
        </pluginRepository>
    </pluginRepositories>

    <build>
    <extensions>
        <extension>
            <groupId>net.sf.maven.plugins</groupId>
            <artifactId>wagon-http-sourceforge</artifactId>
            <version>0.4</version>
        </extension>
    </extensions>
   :
   </build>

On dirait que je vais écrire moi-même.

https://sourceforge.net/projects/wagon-sf/

Après avoir essayé ce que un certain nombre de fois, j'ai enfin réussi à le faire fonctionner-avec sftp pas scp.Cela devrait fonctionner à partir d'une machine unix (ou Mac) - je ne suis pas sûr de sftp clients pour Windoze.Je suis à l'aide de mvn version 2.2.0 et je ne pense pas que j'ai des plugins installés.Cette déploie les différents mvn paquets à la section Fichiers de mon projet.

Vous aurez besoin de modifier les éléments suivants dans vos paramètres à le faire fonctionner:

  • l'utilisateur -- remplacer avec votre sourceforce nom d'utilisateur
  • secret -- remplacer avec votre mot de passe
  • ormlite -- remplacer par le nom de votre projet
  • /o/ou/ -- remplacer avec le premier char et les 2 premiers caractères de votre nom de projet

Dans mon $HOME/.m2/settings.xml fichier j'ai le texte suivant pour la SF serveur:

<server>
  <id>sourceforge</id>
  <password>secret</password>
  <filePermissions>775</filePermissions>
  <directoryPermissions>775</directoryPermissions>
</server>

Je n'ai pas spécifier le nom d'utilisateur dans le settings.xml fichier, car il doit être nom d'utilisateur,d'un projet, et je veux déployer plusieurs paquets de SF.Alors, dans mon pom.xml fichier pour la ormlite paquet que j'ai suivantes:

<distributionManagement>
 <repository>
  <id>sourceforge</id>
  <name>SourceForge</name>
  <url>sftp://user,ormlite@frs.sourceforge.net:/home/frs/project/o/or/ormlite/releases
  </url>
 </repository>
 <snapshotRepository>
  <id>sourceforge</id>
  <name>SourceForge</name>
  <url>sftp://user,ormlite@frs.sourceforge.net:/home/frs/project/o/or/ormlite/snapshots
  </url>
 </snapshotRepository>
</distributionManagement>

Évidemment, la /les rejets et /instantanés répertoire des suffixes peuvent être modifiés en fonction de votre hiérarchie de fichiers.

Où timp = utilisateur et webmacro = projet

scp d'url ne fonctionne pas:

scp://timp,webmacro@shell.sourceforge.net:/home/groups/w/we/webmacro/htdocs/maven2/

sftp url fonctionne:

 sftp://timp,webmacro@web.sourceforge.net:/home/groups/w/we/webmacro/htdocs/maven2

ou, pour le projet de libération des artefacts:

sftp://timp,webmacro@web.sourceforge.net:/home/frs/project/w/we/webmacro/releases

scp va travailler à l'shell.sourceforge.net mais vous avez à créer l'environnement avant de l'utiliser avec

ssh -t timp,webmacro@shell.sourceforge.net create

Ce n'ai vraiment pas à son tour d'être difficile.Tout d'abord, j'ai eu l'mvn site:déployer de travail en suivant les instructions à l' ce site de sourceforge.Fondamentalement, vous démarrez le sourceforge shell avec

ssh -t user,project@shell.sourceforge.net create

Qui va créer l'environnement à leur fin, avec un dossier monté à votre projet sur un chemin tel que (selon vos projets nom):

/home/groups/c/ch/chex4j/

Dans ce shell que j'ai sur le serveur sourceforge, j'ai créé un dossier pour mon repo dans le cadre du projet apache dossier "htdocs" avec

mkdir /home/groups/c/ch/chex4j/htdocs/maven2

Dans mon settings.xml j'ai mis le nom d'utilisateur et mot de passe pour que shell serveur, de sorte que maven pouvez vous connecter:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd/"> 
  <servers>
        <server>
            <id>chex4j.sf.net</id>
            <username>me,myproject</username>
            <password>password</password>
            <filePermissions>775</filePermissions>
            <directoryPermissions>775</directoryPermissions>
        </server>
    </servers>
</settings>

Dans le pom.xml vous avez juste besoin de votre distibutionManagement section de configuration pour le nom du serveur par l'ID que vous définissez le mot de passe dans votre fichier de paramètres:

<distributionManagement>
    <site>
        <id>chex4j.sf.net</id>
        <url>scp://shell.sourceforge.net/home/groups/c/ch/chex4j/htdocs/
        </url>
    </site>
    <repository>
        <id>chex4j.sf.net</id>
        <name>SourceForge shell repo</name>
        <url>scp://shell.sourceforge.net/home/groups/c/ch/chex4j/htdocs/maven2</url>
    </repository>
</distributionManagement>

Il le référentiel d'entrée est celle de la mvn deploy commande et l'entrée sur le site est pour le mvn site:déploiement de la commande.Ensuite, tout ce que j'ai à faire est de démarrer le shell de connexion à mettre en place le serveur de côté puis sur mon côté local il suffit d'exécuter:

mvn deploy

qui télécharge le pot, pom et des sources, et la comme sur mon sourceforge projets de site web.Si vous essayez de frapper la /maven2 dossier sur le site du projet sourceforge veuillez vous dire que l'inscription à l'annuaire est désactivée par défaut et comment le résoudre.Pour ce faire, sur le shell du serveur de vous créer un .htaccess dans votre htdocs/maven2 dossier contenant les éléments suivants apache options

Options +Indexes

Puis bingo, vous avez un repo maven qui ressemble à:

http://chex4j.sourceforge.net/maven2/net/sf/chex4j/chex4j-core/1.0.0/

Votre sf.net coquille, il s'arrête après un nombre d'heures pour pas monopoliser les ressources;si vous exécutez le "ssh -t ...créer" lorsque vous souhaitez déployer le site ou construire des artefacts.

Vous pouvez parcourir l'ensemble de mon projet maven code sous sourceforge pour voir mes réglages:

http://chex4j.svn.sourceforge.net/viewvc/chex4j/branches/1.0.x/chex4j-core/

SCP URL n' travail.Mais n'utilisez pas les ":" après le nom du serveur.MVN essaie de lire le test suivant comme un entier (numéro de port).

Vous n'avez pas besoin d'établir des tunnels, simbo1905 fait.

Le Maven SourceForge plug-in ne fonctionne pas avec Maven 2.Aussi je crois que ce plug-in utilise FTP qui n'est plus supporté.

J'ai trouvé que CruiseControl pouvez télécharger les communiqués de SFEE et travaille également avec Maven et Maven2

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top