2010-05-20 3 views
8

Je veux automatiser l'exécution de la libération Maven: avec Perl prepare afin que l'utilisateur n'a pas à répondre aux invites pour les noms de version, etc. Y at-il des arguments -D qui peuvent être fournis afin que personne ne se fait inviter? J'ai essayé la solution évidente qui consiste à nourrir les réponses rapides à mvn via le code Perl comme ceci:Comment puis-je fournir des informations de préparation de version Maven sans invites?

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; 

mais mvn ignore cette entrée et serpente à l'aide des valeurs par défaut (et ne demande pas non plus).

Ainsi, sont là args -D pour la sortie: préparer goal plugin:?

Merci.

Répondre

1

S'il est une solution Perl que vous cherchez, les arguments de ligne de commande sont généralement exécutés par la commande system.

Essayez system $cmd;

Pour autant que je sache, il n'y a pas besoin d'ouvrir et de près handles de fichiers.

+0

Je pense que l'OP essayait d'envoyer des commandes via STDIN. Une fausse hypothèse, mais une approche valide étant donné que l'utilisateur tape des réponses à maven. – harschware

8

Vous pouvez utiliser la commande maven suivante pour le faire ...

mvn --batch-mode release:prepare 

Cela suppose par défaut pour tout ce que vous auriez normalement être invité à entrer; Ce serait comme lancer un communiqué et simplement frapper à chaque fois qu'il vous posait une question. Par exemple, si votre version de développement actuelle de votre projet était 1.2.3-SNAPSHOT, elle libérerait la version 1.2.3 et déplacerait votre version de développement à 1.2.4-SNAPSHOT. Il est généralement préférable de laisser Maven travailler pour vous de toute façon puisque le but de maven est d'utiliser la convention plutôt que la configuration. Cependant, est que vous devez spécifier les propriétés non par défaut, le maven-release-plugin permet remplacement de propriété de ligne de commande ainsi que l'utilisation d'un fichier « release.properties » pour des raisons impérieuses ces paramètres.

0

Vous pouvez spécifier tout en utilisant des arguments à la libération mvn: préparer la commande suivante:

libération

mvn: préparer -DautoVersionSubmodules = true -DreleaseVersion = {version de votre version} = {-DdevelopmentVersion prochaine version} de -snapshot - Dtag = {votre tag}

Questions connexes