2008-08-19 3 views
11

Ich verwende SourceForge für einige Open Source-Projekte und möchte die Bereitstellung von Releases für das SourceForge File Release System automatisieren. Ich verwende Maven für meine Builds und der Standard-SFTP-Bereitstellungsmechanismus scheint nicht zu funktionieren, es sei denn, du machst einige manuelle Vorbereitungsarbeiten. Ich habe einige alte Beiträge in anderen Foren gefunden, die darauf hindeuten, dass der einzige Ansatz darin besteht, einen Wagon speziell für SourceForge zu schreiben.Wie kann ich Artefakte von einem Maven-Build zum SourceForge File Release System bereitstellen?

Hat jemand irgendwelche neuen Erfahrungen damit gemacht?

Antwort

9

Ich bin nicht in der Lage, dies zu testen, um zu bestätigen, aber ich glaube, dass es möglich ist, all Plug-in ohne das Schreiben .

Sie können deploy to SourceForge using SCP und die Maven-deploy-Plugin kann zu use SCP so konfiguriert werden, sollte es funktionieren. Sie können Ihre site to SourceForge auch über SCP bereitstellen.

Sie würden den SourceForge-Server in Ihrer settings.xml so konfigurieren, dass ein "kombinierter" Benutzername mit einem Kommatrennzeichen verwendet wird. 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 wie folgt aussehen:

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

Und die distribution Abschnitt in Ihrem POM würde wie folgt 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 festzustellen, dass ssh extern ist zu verwenden:

<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, der empfohlene Ansatz in der Website Bezug der Lage sein, kann oben zu verwenden, dh eine Shell auf shell.sourceforge.net mit Ihrem Benutzernamen und Projektgruppe erstellen:

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

Dann nutzen shell.sourceforge.net (statt web.sourceforge.net) in Ihrer Website-URL im diestributionManagement Abschnitt:

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

Das Maven SourceForge Plug-in funktioniert nicht mit Maven 2. Ich glaube auch, dass dieses Plug-in FTP verwendet, das nicht mehr unterstützt wird.

0

Ich fand, dass CruiseControl Versionen SFEE hochladen und arbeitet auch mit Maven und Maven2

1

dies einige Male nach dem Versuch, bekam ich endlich zu arbeiten, um es - mit sftpnicht scp. Dies sollte von einer Unix-Box (oder Mac) funktionieren - ich bin mir nicht sicher über sftp-Clients für Windoze. Ich verwende mvn Version 2.2.0 und ich glaube nicht, dass ich spezielle Plugins installiert habe. Dadurch werden die verschiedenen mvn-Pakete im Abschnitt Dateien meiner Projektseite bereitgestellt.

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

  • Benutzer - ersetzen mit Ihrem Benutzernamen Sourceforce
  • Geheimnis - ersetzen mit Ihrem Passwort
  • ormlite - - ersetzen mit Ihrem Projektnamen
  • /o/oder/- mit dem ersten Zeichen und ersten 2 Zeichen Ihres Projektnamen ersetzen

In meinem $ HOME/.m2/settings.xml folgenden für den SF-Server Ich habe:

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

Ich habe nicht den Benutzernamen in der Datei settings.xml angeben, weil es Benutzernamen, Projekt muss sein und ich möchte mehrere Pakete nach SF bereitstellen. Dann in meiner pom.xml-Datei für das ormlite Paket Ich habe folgende:

<distributionManagement> 
<repository> 
    <id>sourceforge</id> 
    <name>SourceForge</name> 
    <url>sftp://user,[email protected]:/home/frs/project/o/or/ormlite/releases 
    </url> 
</repository> 
<snapshotRepository> 
    <id>sourceforge</id> 
    <name>SourceForge</name> 
    <url>sftp://user,[email protected]:/home/frs/project/o/or/ormlite/snapshots 
    </url> 
</snapshotRepository> 
</distributionManagement> 

Offensichtlich ist die/releases und/Snapshots Verzeichnis Suffixe geändert werden kann je nach Dateihierarchie.

1

Wo TIMP = user und webmacro = Projekt

scp url nicht funktioniert:

scp://timp,[email protected]:/home/groups/w/we/webmacro/htdocs/maven2/ 

SFTP url funktioniert:

sftp://timp,[email protected]:/home/groups/w/we/webmacro/htdocs/maven2 

oder für Projekt Release Artefakte:

sftp://timp,[email protected]:/home/frs/project/w/we/webmacro/releases 

scp wird shell.sourceforge.net arbeiten, aber Sie haben die Schale vor dem Gebrauch zu schaffen, mit

ssh -t timp,[email protected] create 
3

ich ein Beispiel zu sourceforge.net hochgeladen haben: http://sf-mvn-plugins.sourceforge.net/example-1jar-thinlet/

Sie können es über svn Check-out - so Sie können sehen, wie Sie Plugins zum Hoch- und Herunterladen von und zum sourceforge.net Dateisystembereich und zur Website verwenden.

Die wichtigsten Punkte zu laden sind SFTP zu verwenden:

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

ähnlichen Code hinzufügen

<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 Haupt settings.xml Point for Download ist die Verwendung des Wagen-http-sourceforge maven plugin - siehe auch: sf-mvn-plugins.sourceforge.net/wagon-http-sourceforge/FAQ.html

Bitte fügen Sie den folgenden Code in Ihre 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> 
1

Das so schwer nicht erweisen sich als wirklich. Zuerst hatte ich die mvn-Seite: deploy arbeitet nach den Anweisungen unter this sourceforge site.Grundsätzlich starten Sie den Source Schale mit

ssh -t user,[email protected] create 

dass die Schale an ihrem Ende schaffen wird mit einem Ordner zu einem Projekt auf einem Weg, wie (in Abhängigkeit von Ihren Projekten Name) montiert:

/home/groups/c/ch/chex4j/ 

In dass Shell ich auf der Sourceforge-Server habe ich einen Ordner für meine Repo unter den Projekt apache Ordner „htdocs“ mit

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

In meinem settings.xml ich den Benutzernamen und das Passwort an diese sh gesetzt ell-Server, so dass Maven kann einloggen:

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

Im pom.xml Sie müssen nur Ihren distibutionManagement Abschnitt Setup den Server von ID zu nennen, die das Passwort festgelegt in Ihrer Einstellungsdatei:

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

Dort ist der Repository-Eintrag der Eintrag für den Befehl mvn deploy und der Site-Eintrag für den Befehl mvn site: deploy. Dann alles, was ich tun müssen, ist die Shell-Verbindung starten Sie den Server-Seite dann auf meinem lokalen Seite zu bringen gerade laufen:

mvn deploy 

die uploads das Glas, pom und Quellen und dergleichen auf meine Source Projekte Website. Wenn Sie versuchen, den Ordner/maven2 auf Ihrer Projektwebsite zu treffen, geben Sie bitte quellforge an, dass die Verzeichnisliste standardmäßig deaktiviert ist und wie Sie sie beheben können. Um dies zu tun auf dem Server-Shell erstellen Sie eine .htaccess-Datei in Ihrem htdocs/maven2 Ordner

Options +Indexes 

Dann Bingo folgende Apache-Optionen enthalten, können Sie einen Maven Repo haben, die wie folgt aussieht:

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

Ihre sf.net-Shell schaltet sich nach einer Anzahl von Stunden aus, um keine Ressourcen zu verschwenden; So führen Sie "ssh -t ... create" aus, wenn Sie die Site oder Ihre Build-Artefakte bereitstellen möchten.

Sie können alle meine Maven Projektcode unter Source wechseln Sie zu meiner Arbeits Einstellungen zu sehen:

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

1

SCP URL tut Arbeit. Verwenden Sie jedoch nicht ":" nach dem Servernamen. MVN versucht, den folgenden Test als Ganzzahl (Portnummer) zu lesen.

Sie müssen keine Tunnel wie simbo1905 einrichten.

Verwandte Themen