J'ai fait un fichier de chauve-souris comme:
mvn clean; paquet mvn;
mais cela ne fonctionne pas, seule la première commande est exécutée.
est-ce que quelqu'un peut m'aider?
Utilisation
call mvn clean
call mvn package
Notez que vous n'avez pas besoin de points-virgules dans les fichiers de commandes. Et la raison pour laquelle vous devez utiliser call
est que mvn
est lui-même un fichier batch et que les fichiers batch doivent s’appeler avec call
, sinon le contrôle ne revient pas à la votre interlocuteur.
Si vous souhaitez que les commandes suivantes soient répercutées sur la ligne de commande (dans la sortie par lots), vous devez également procéder à l'opération echo on
après le call mvn
est terminé (à la ligne suivante). En effet, mvn
désactive l'écho et ne le rallume pas.
La réponse de Joey est excellente, mais peut-être qu'un exemple de code plus complet aidera tout le monde, comme moi, à résoudre le même problème de construction de plusieurs projets maven à partir d'un fichier batch sous Windows:
REM maven itself uses a batch file so each mvn must be preceded by "call"
REM the -f flag specifies where the pom.xml is found for the project
REM mvn install will save the target output to %userprofile%\.m2\repository ...
call mvn install -f c:\Users\John\workspace\PropertiesReader\pom.xml
call mvn install -f c:\Users\John\workspace\PropertiesWriter\pom.xml
Vous pouvez également avoir le one-liner suivant:
call mvn clean package
J'ai plus de projets à exécuter, j'ai créé une telle batte:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Utilisez 'call' lorsque vous souhaitez appeler un autre fichier de commandes dans le fichier parent afin que le contrôle soit renvoyé au fichier de commandes parent et qu'il continue son exécution.
par exemple, appelez mvn clean install
Le comportement observé provient de l'époque de MS-DOS 1.0 et est conservé pour des raisons de compatibilité. En guise de solution, vous devez utiliser Windows appel pour fonctionner de la manière suivante:
call mvn clean
call mvn package
L '"appel" exécute un programme batch à partir d'un autre et l'interprète comme un sous-programme.
nous pouvons utiliser ce qui suit pour construire un maven et le transférer dans n'importe quel dossier unix à des fins de développement
SET projectName=commonutil
cd %gitpath%\%projectName%
call mvn clean install -DskipTests=true %password%
IF %ERRORLEVEL% EQU 0 (Echo No error found) ELSE goto exitdoor
SET jarpath="%gitpath%\%projectName%\target\%projectName%-0.0.1-SNAPSHOT.jar"
copy /Y %jarpath% "%libpath%"
scpg3 %jarpath% %ssh_profile_name%@%hostname%:%dev_lib_folder_name%