¿Cómo puedo implementar artefactos de una Maven build para el SourceForge Archivo de Sistema de Liberación?

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

  •  08-06-2019
  •  | 
  •  

Pregunta

Estoy usando SourceForge para algunos proyectos Open Source y quiero automatizar la implementación de las emisiones a la SourceForge Archivo de Sistema de Liberación.Yo uso de Maven para mi construye y el estándar de SFTP mecanismo de implementación no parece funcionar, a menos que hagan algún manual de preparación para el trabajo.Me han llegado a través de algunos de los viejos mensajes en otros foros, lo que sugiere que el único enfoque es escribir un Vagón específicamente para SourceForge.

Alguien ha tenido alguna experiencia reciente con esto?

¿Fue útil?

Solución

Yo no soy capaz de poner a prueba esta a confirmar, pero creo que es posible que sin escribir ningún tipo de plugins.

Usted puede implementar a SourceForge usando SCP, y el maven-implementar-plugin se puede configurar para el uso de SCP así que se debe trabajar.También puede implementar el sitio de SourceForge a través de SCP.

Tendría que configurar el servidor SourceForge en su settings.xml la utilización de un "combinado" nombre de usuario con un separador de coma.Con estas credenciales:

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 

El servidor elemento tendría este aspecto:

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

Y el distributionManagement sección en su POM tendría este aspecto:

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

Finalmente declarar que ssh-externo es para ser utilizado:

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

Si esto no funciona, usted puede ser capaz de utilizar el enfoque recomendado en el sitio de referencia anterior, es decir,crear un shell en shell.sourceforge.net con su nombre de usuario y grupo del proyecto:

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

A continuación, utilice shell.sourceforge.net (en lugar de web.sourceforge.net) en la URL del sitio en el diestributionManagement sección:

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

Otros consejos

He subido un ejemplo a sourceforge.net en: http://sf-mvn-plugins.sourceforge.net/example-1jar-thinlet/

Usted puede comprobar fuera de ella a través de svn - así que usted puede ver cómo el uso de plugins para la carga y descarga de y para sourceforge.net área sistema de archivos y el sitio web.

Los principales puntos para subir a utilizar sftp:

Añadir este código similar para su 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>

Agregar un código similar a 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>

El punto principal para la descarga es el uso de la carreta-http-sourceforge plugin de maven - por favor, ver en:sf-mvn-plugins.sourceforge.net/wagon-http-sourceforge/FAQ.html

Por favor, agregue el código siguiente a su 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>

Parece que voy a tener que escribir esto a mí mismo.

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

Después de probar este un número de veces, por fin lo conseguí a trabajar-con sftp no scp.Este debe trabajar de una máquina unix (o Mac) -- no estoy seguro acerca de sftp clientes para Windoze.Estoy usando mvn versión 2.2.0 y creo que no tengo ninguna en especial los plugins instalados.Esto implementa los diferentes mvn paquetes a la sección de Archivos de mi página del proyecto.

Usted necesitará cambiar los siguientes en su configuración para que funcione:

  • usuario: sustituir con su sourceforce nombre de usuario
  • secreto -- reemplazar con su contraseña
  • ormlite -- reemplazar con el nombre del proyecto
  • /o/o/ -- reemplazar con el primer char y los 2 primeros caracteres de su nombre de proyecto

En mi $HOME/.m2/settings.xml archivo tengo el siguiente para el SF servidor:

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

Yo no se especifica el nombre de usuario en el settings.xml archivo porque necesita nombre de usuario,proyecto y quiero implementar múltiples paquetes para SF.Entonces, en mi pom.xml archivo para la ormlite paquete tengo lo siguiente:

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

Obviamente el /comunicados y /instantáneas directorio de sufijos pueden cambiar según la jerarquía de archivos.

Donde timp = usuario y webmacro = proyecto

scp url no funciona:

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

sftp url funciona:

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

o para el proyecto de liberación de los artefactos:

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

scp trabajará para shell.sourceforge.net pero usted tiene que crear el shell antes de su uso con

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

Esto realmente no resultó ser tan difícil.Por primera vez tuve la mvn site:implementar de trabajo siguiendo las instrucciones en este sitio sourceforge.Básicamente iniciar el shell con sourceforge

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

Que va a crear la shell en su extremo con una carpeta montada en su proyecto en una ruta de acceso como (dependiendo de los proyectos de su nombre):

/home/groups/c/ch/chex4j/

En que shell en el servidor sourceforge he creado una carpeta para mi repo en el marco del proyecto de apache de la carpeta "htdocs" con

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

En mi settings.xml me puse el nombre de usuario y contraseña para que el servidor de shell para que maven puede iniciar sesión:

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

En el pom.xml solo es necesario que tu distibutionManagement la sección de instalación a nombre de el servidor de IDENTIFICACIÓN que establezca la contraseña en el archivo de configuración:

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

Allí el repositorio de entrada es el uno para el mvn deploy y la entrada al sitio es para el mvn site:deploy.Entonces todo lo que tienes que hacer es iniciar el shell de conexión para abrir el lado del servidor, a continuación, en mi lado local sólo tiene que ejecutar:

mvn deploy

que carga el frasco, pom y las fuentes y el como a mi sourceforge página web de proyectos.Si intenta golpear el /maven2 carpeta en el sitio web del proyecto en sourceforge amablemente decirle que el listado del directorio está desactivada por defecto y cómo solucionarlo.Para ello en el servidor de shell de crear una .htaccess en su htdocs/maven2 carpeta que contiene las siguientes opciones de apache

Options +Indexes

A continuación, bingo, usted tiene una maven repo que se ve así:

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

Su sf.net shell se apaga después de un número de horas para no hog recursos;para ejecutar el "ssh -t ...crear" cuando se desea implementar el sitio o la construcción de artefactos.

Puedes navegar por todos mi proyecto de maven código en sourceforge para ver mi configuración:

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

SCP URL ¿ trabajo.Pero no use ":" después del nombre del servidor.MVN intenta leer la siguiente prueba como número entero (número de puerto).

Usted no necesita establecer túneles como simbo1905 hizo.

La Maven SourceForge plug-in de no trabajar con Maven 2.También creo que este plug-in utiliza FTP que ya no se admite.

He encontrado que CruiseControl puede subir de prensa para SFEE y también funciona con Maven y Maven2

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top