2010-05-20 12 views
8

Quiero automatizar la ejecución de la versión de Maven: preparar con Perl para que el usuario no tenga que responder las solicitudes de nombres de versión, etc. ¿Hay argumentos -D que se pueden suministrar para que no se haga ninguna solicitud? Probé la solución obvia, que es alimentar a las respuestas rápidas a través de MVN código Perl así:¿Cómo puedo proporcionar la información de preparación de Maven sin indicaciones?

my $cmd = qq(mvn release:prepare -DautoVersionSubmodules=true-DpreparationGoals="clean install"); 
open MVN, "| $cmd"; 

print MVN "\n"; # default 
print MVN "$cur_version"; 
print MVN "\n"; 
print MVN "$next_version"; 
print MVN "\n"; 

close MVN; 

pero ignora tales mvn de entrada y termina utilizando los valores por defecto (y no pide tampoco).

Entonces, ¿hay -D args para el lanzamiento: prepare plugin: goal?

Gracias.

Respuesta

1

Si se trata de una solución de Perl que busca, los argumentos de la línea de comandos generalmente se ejecutan a través del comando system.

Trate system $cmd;

Por lo que yo puedo decir, no hay necesidad de abrir y cerrar filehandles.

+0

Creo que el OP intentaba enviar comandos a través de STDIN. Una suposición falsa, pero un enfoque válido dado que el usuario está escribiendo respuestas a maven. – harschware

8

Usted puede utilizar el siguiente comando experto para hacer eso ...

mvn --batch-mode release:prepare 

Este asumirá valores por defecto para cualquier cosa que la que normalmente se le solicite; sería como ejecutar un lanzamiento y simplemente presionar enter cada vez que te haga una pregunta. Por ejemplo, si su versión de desarrollo actual de su proyecto era 1.2.3-SNAPSHOT, liberaría la versión 1.2.3 y movería su versión de desarrollo a 1.2.4-SNAPSHOT. Por lo general, es mejor dejar que Maven trabaje de esta forma para usted, ya que el objetivo de Maven es utilizar la convención sobre la configuración. Sin embargo, es necesario especificar las propiedades no predeterminadas, el maven-release-plugin permite la anulación de la propiedad de la línea de comando y el uso de un archivo 'release.properties' para anular estas configuraciones.

0

Puede especificar todo utilizando argumentos para la liberación mvn: preparar comando:

liberación

mvn: preparar -DautoVersionSubmodules = true -DreleaseVersion = {su versión de lanzamiento} = {-DdevelopmentVersion próxima versión} -SNAPSHOT - Dtag = {su etiqueta}

Cuestiones relacionadas