Wie kann ich bereitstellen von Artefakten aus einem Maven-build auf den SourceForge-Datei Release-System?

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

  •  08-06-2019
  •  | 
  •  

Frage

Ich bin mit SourceForge für einige Open-Source-Projekte, und ich möchte automatisieren das deployment von releases auf der SourceForge-Datei-Release-System.Ich benutze Maven für meine builds und die standard-SFTP-deployment-Mechanismus scheint nicht zu funktionieren, es sei denn, Sie haben einige manuelle Vorbereitung der Arbeit.Ich habe in einigen alten postings in anderen Foren darauf hindeutet, dass der einzige Ansatz ist, um zu schreiben ein Wagen speziell für SourceForge.

Hat jemand schon die jüngsten Erfahrungen mit dieser?

War es hilfreich?

Lösung

Ich bin nicht in der Lage, dies zu testen, um zu bestätigen, aber ich glaube, es ist möglich, ohne das schreiben von plugins.

Sie können die Bereitstellung auf SourceForge mit SCP, und das maven-deploy-plugin kann so konfiguriert werden, SCP so sollte es funktionieren.Sie können auch bereitstellen Website SourceForge via SCP.

Konfigurieren Sie die SourceForge-server in Ihrem settings.xml die Verwendung eines "kombinierten" username mit einem Komma-Trennzeichen.Mit diesen Anmeldeinformationen:

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 

Das server-element würde dann so Aussehen:

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

Und das distributionManagement Abschnitt in Ihrem POM, würde so Aussehen:

<!-- 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>

Schließlich erklären, dass ssh-extern verwendet werden:

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

Wenn dies nicht funktioniert, können Sie verwenden Sie das empfohlene Vorgehen in der Standort-Referenz oben, d.h.erstellen Sie eine shell auf shell.sourceforge.net mit Ihrem Benutzernamen und Projekt-Gruppe:

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

Verwenden Sie dann shell.sourceforge.net (statt von web.sourceforge.net) in der URL Ihrer Website in der diestributionManagement Abschnitt:

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

Andere Tipps

Ich habe ein Beispiel hochgeladen sourceforge.net an: http://sf-mvn-plugins.sourceforge.net/example-1jar-thinlet/

Sie können überprüfen Sie es per svn - so können Sie sehen, wie man plugins für up-und download von und zu sourceforge.net Datei-system-Bereich und web-site.

Die wichtigsten Punkte zum hochladen zu verwenden sftp:

Fügen Sie diese ähnlichen code in Ihre 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>

Fügen Sie ähnlichen code 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>

Der wichtigste Punkt für den download ist die Verwendung des wagon-http-sourceforge-maven-plugin - weitere Informationen finden Sie unter:sf-mvn-plugins.sourceforge.net/wagon-http-sourceforge/FAQ.html

Bitte fügen Sie den folgenden code zu Ihrem 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>

Wie es aussieht, werde ich haben, dies zu schreiben, mich.

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

Nach dem Versuch, diesem eine Anzahl von Zeiten, ich habe es endlich zu arbeiten-mit sftp nicht scp.Diese Arbeit sollte von einem unix-Rechner (oder Mac -) - ich bin mir nicht sicher über sftp-clients für Windows.Ich bin mit mvn-version 2.2.0 und ich glaube nicht, dass ich irgendwelche besonderen plugins installiert.Dies setzt die verschiedenen mvn-Pakete, um die Dateien im Abschnitt meine Projekt-Seite.

Sie müssen den folgenden, in Ihre Einstellungen, um es an die Arbeit:

  • Benutzer-ersetzen mit Ihrem sourceforce Benutzername
  • Geheimnis-ersetzen mit Ihrem Passwort
  • ormlite -- ersetzen Sie mit Ihrem Projekt name
  • /o/oder/ -- ersetzen mit dem ersten char und die ersten 2 Zeichen der name Ihres Projekts

In meinem $HOME/.m2/settings.xml -Datei habe ich die folgenden für die SF-server:

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

Ich don ' T geben Sie den Benutzernamen in das settings.xml Datei, weil es Bedürfnisse zu werden Benutzername,Projekt, und ich möchte zum bereitstellen von mehreren Paketen zu SF.Dann, in meinem pom.xml Datei für die ormlite-Paket habe ich Folgendes:

<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>

Offensichtlich ist die /releases und /snapshots directory Suffix kann geändert werden abhängig von Ihrer Datei-Hierarchie.

Wo timp = Benutzer-und webmacro = Projekt

scp-url funktioniert nicht:

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

sftp-url funktioniert:

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

oder für Projekt-release-Artefakte:

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

scp Arbeit shell.sourceforge.net aber Sie haben zu erstellen Sie die Schale vor dem Gebrauch mit

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

Das hat wirklich nicht so schwer sein.Ersten bis hatte ich die mvn site:deploy arbeiten, Folgen Sie der Anleitung auf dies sourceforge-Website.Grundsätzlich starten Sie die sourceforge-shell mit

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

Das wird erstellen Sie die Schale an Ihrem Ende mit einem Ordner montiert, um Ihr Projekt auf einem Pfad, zum Beispiel (abhängig von Ihrem Vorhaben name):

/home/groups/c/ch/chex4j/

In die Schale habe ich auf dem sourceforge-server habe ich einen Ordner erstellt für mein repo unter dem Projekt apache Ordner "htdocs" mit

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

In meinem settings.xml ich den Benutzernamen und das Kennwort, die shell-server, so dass maven login:

<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>

In der pom.xml Sie brauchen nur Ihre distibutionManagement Abschnitt setup, um den Namen der server-ID, mit der Sie das Kennwort für das in dein Einstellungen die Datei:

<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>

Da die repository-Eintrag ist der für die mvn deploy-Befehl und den Website-Eintrag ist für die mvn site:deploy-Befehl.Dann alles, was ich zu tun ist, starten Sie die shell-Verbindung, um die server-Seite, dann auf meine lokale Seite ausgeführt werden:

mvn deploy

die uploads der jar, pom und Quellen und dergleichen auf meinem sourceforge Projekt Seite.Wenn Sie versuchen zu schlagen, das /maven2 Ordner auf Ihrer Projekt-website sourceforge-bitte sagen Sie, dass Verzeichnisliste standardmäßig deaktiviert ist und wie Sie es beheben können.Um dies zu tun, der auf die server-shell, erstellen Sie eine .htaccess-Datei in Ihrem htdocs/maven2-Ordner mit den folgenden Optionen apache

Options +Indexes

Dann bingo, Sie haben einen maven-repo, die aussieht wie:

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

Ihre sf.net shell-es wird heruntergefahren, nachdem eine Anzahl von Stunden, um nicht hog Ressourcen;so führen Sie den "ssh -t ...erstellen", wenn Sie wollen, um die Bereitstellung der Website oder Ihrer build-Artefakte.

Durchsuchen Sie alle meine maven-Projekt code unter sourceforge zu sehen meine Einstellungen:

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

SCP-URL tut Arbeit.Aber tun nicht zu verwenden ":" nach-server-Namen.MVN versucht wird, Lesen Sie den folgenden test as integer (port-Nummer).

Sie tun nicht müssen, um festzustellen, tunnels simbo1905 haben.

Die Maven-SourceForge-plug-in funktioniert nicht mit Maven 2.Außerdem glaube ich, dass das plug-in FTP verwendet wird, die nicht mehr unterstützt.

Ich fand, dass CruiseControl hochladen von Veröffentlichungen zu SFEE und funktioniert auch mit Maven und Maven2

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top