2010-05-20 12 views
8

Ich möchte die Ausführung von Maven Release automatisieren: mit Perl vorbereiten, so dass der Benutzer die Eingabeaufforderungen für Versionsnamen usw. nicht beantworten muss. Gibt es eine -D Argumente, die geliefert werden können, so dass keine Aufforderung erfolgt? Ich versuchte, die offensichtliche Lösung, die die prompte Antworten auf mvn über Perl-Code wie folgt zu füttern ist:Wie kann ich Maven-Release-Informationen ohne Eingabeaufforderungen bereitstellen?

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; 

aber mvn ignoriert solche Eingabe und windet sich die Standardeinstellungen verwenden (und nicht aufgefordert, entweder).

Also, gibt es -D Argumente für die Veröffentlichung: Plugin vorbereiten: Ziel?

Danke.

Antwort

1

Wenn es sich um eine Perl-Lösung handelt, die Sie suchen, werden Befehlszeilenargumente normalerweise über den Befehl system ausgeführt.

Versuchen system $cmd;

Soweit ich das beurteilen kann, gibt es keine Notwendigkeit zu öffnen und zu schließen Dateihandies.

+0

Ich denke, das OP versuchte, Befehle über STDIN zu senden. Eine falsche Annahme, aber ein gültiger Ansatz, wenn der Benutzer Antworten auf Maven eintippt. – harschware

8

Sie können den folgenden Maven-Befehl verwenden, das zu tun ...

mvn --batch-mode release:prepare 

Diese Standardwerte für etwas übernehmen, die Sie normalerweise für aufgefordert werden würden; Es wäre so, als würde man eine Veröffentlichung machen und jedes Mal, wenn es eine Frage stellt, einfach Enter drücken. Wenn Ihre aktuelle Entwicklungsversion Ihres Projekts beispielsweise 1.2.3-SNAPSHOT ist, würde sie Version 1.2.3 veröffentlichen und Ihre Entwicklungsversion auf 1.2.4-SNAPSHOT verschieben. Es ist normalerweise am besten, wenn Maven das für dich erledigt, denn das Ziel von Maven ist es, Konvention über Konfiguration zu verwenden. Sie müssen jedoch nicht standardmäßige Eigenschaften angeben, das maven-release-plugin erlaubt das Überschreiben der Befehlszeileneigenschaften sowie die Verwendung einer Datei 'release.properties' zum Überschreiben dieser Einstellungen.

0

Sie können alles mit Argumenten für die MVN Release angeben: bereiten Befehl:

mvn release: -DautoVersionSubmodules = true -DreleaseVersion = {Ihre Release-Version} -DdevelopmentVersion = {nächste Version} -snapshot vorbereiten - Dtag = {Ihr Tag}

Verwandte Themen