2010-05-12 22 views
7

Con respecto a mi pregunta anterior ->Is there a SVN Maven?, fui página de uso artesa ->http://maven.apache.org/scm/maven-scm-plugin/usage.html no fundó exactamente lo que estaba buscando, aquí lo que me gustaría hacer: listaMaven SVN ejemplo la caja

  • Pedido de proyectos que yo especifique para excepto:

http://mysvnurl/myprojectname donde podría parametrizar el nombre del proyecto

Entonces digamos que si hay 3-4 o n número de sub-proyectos (módulos) (para el que pueda s pecify los nombres también) que quiero pagar, y que podría especificar branch (trunk) y revisión. Para simplificar:

  • Pedido cierta sub-proyectos (módulos) maletero de myprojectname

Ex:

http://mysvnurl/myprojectname/project1/trunk/ * // obtener todo lo
http://mysvnurl/myprojectname/project2/trunk/ * // obtener todo lo

¿Cómo podría hacer eso con Maven, alguien con más experiencia puede explicarme cómo hacer esto o dirigirme a algún lugar donde pueda leer cómo hacerlo, he buscado en Google nada específico de mis necesidades

Gracias

Respuesta

8

El Maven SCM Plugin que he mencionado en su pregunta anterior es una alternativa a la tarea SvnAnt en el sentido de que permite interactuar con un depósito de la subversión (entre otros) a partir de Maven o complementos (como el complemento de lanzamiento). Pero creo que me perdí lo que quieres hacer exactamente.

Así que vamos a volver a esta pregunta, aquí es cómo se podría utilizar scm:checkout en la CLI:

mvn scm:checkout -DconnectionUrl=scm:svn:https://svn.dev.java.net/svn/glassfish-svn/trunk/v3 -DcheckoutDirectory=v3 

Y podríamos imaginar poner todo esto en un POM y la declaración de estos parámetros en el configuration del plugin (o en varios execution si necesita manejar varias URL). Y, opcionalmente, usted podría incluso jugar con algunos excludes o includes (que son honrados ahora, ver SCM-526 ).

... 
<execution> 
    <id>perform-checkout</id> 
    <configuration> 
    <connectionUrl>myUrl</connectionUrl> 
    <checkoutDirectory>myDirectory</checkoutDirectory> 
    <excludes>folder1/*,folder2/*</excludes> 
    </configuration> 
    <phase><!-- some phase --></phase> 
    <goals> 
    <goal>checkout</goal> 
    </goals> 
</execution> 
... 

Pero nunca lo he usado así. Por si acaso, tal vez echar un vistazo a scm:bootstrap que se puede utilizar para arrancar un proyecto a partir de un mínimo de POM (ver Bootstrapping a Project Using a POM) en su lugar. Pero en ambos casos, no estoy 100% seguro de que estos objetivos estén destinados a proporcionar el nivel de automatización que está buscando.

Y cuanto más miro a su pregunta, más pienso que svn:externals (es decir,una función de Subversion) es lo que buscas. Eso es lo que utilizo para realizar pagos de proyectos complejos con múltiples troncales en un solo comando.

1

¿Su proyecto es organizado como la siguiente?

root (pom.xml) 
    +--- Module1 (pom.xml) 
    +--- Module2 (pom.xml) 

¿Tiene una construcción de multímetro?

Lo primero es, ¿por qué le gustaría al pago y envío a través de Maven? Let Construir servidores hacen este trabajo o su IDE ...

+1

@khmarbaise ¿Tiene una construcción de multímetro? - Sí, lo primero es, ¿por qué te gustaría pagar a través de Maven? porque quiero automatizar el proceso – ant

+0

Ok. Una compilación multimodular se debe realizar a través de Hudson para CI o puede verificar el árbol con un solo comando. No hay necesidad de hacer eso en Maven en sí ... Puede ser que supervise una cosa ... – khmarbaise

+0

@khmarbaise Lo que pasa es que quiero pagar ciertos submódulos no todos – ant

3

Una compilación de varios módulos normalmente requiere que los módulos secundarios estén contenidos dentro del directorio del módulo principal. Pero no parece haber una manera para que Hudson/Jenkins cree ese tipo de estructura a menos que todos los módulos estén en un solo árbol en SCM. Para mi proyecto, ese no es el caso. Muchos de los niños están en árboles scm separados (en github). Sería muy útil si maven pudiera crear la estructura. Necesita poder hacer eso dado solo el pom padre, porque los niños no son visibles hasta que se hayan obtenido de scm.

+0

Hola. ¿Has encontrado una solución para este problema? – aindl

+0

No. Renuncié a la compilación de varios módulos cuando descubrí que maven no haría una versión de varios módulos correctamente cuando los módulos son en realidad submódulos de git. Las operaciones de git son incorrectas. Me di por vencido en esto hace un par de meses, así que no recuerdo los detalles. Así que construimos y lanzamos los módulos (10 de ellos) por separado. – GrampaJohn