Réponses:
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
lui - même est un fichier de commandes et que les fichiers de commandes doivent s'appeler les uns les autres call
, sinon le contrôle ne revient pas à l'appelant.
Si vous voulez que les commandes suivantes se répercutent sur la ligne de commande (afficher dans la sortie par lots), vous devez également le faire echo on
après que le call mvn
soit terminé (sur la ligne suivante). C'est parce que 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 quelqu'un d'autre comme moi qui découvre également un problème similaire de construction de plusieurs projets maven à partir d'un fichier batch dans 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
call
pour que tout ce qu'ils écrivent après la mvn
commande s'exécute.
J'ai plus de projets à exécuter, j'ai créé une telle chauve-souris:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Le comportement observé provient de l'époque de MS-DOS 1.0 et il est conservé pour des raisons de compatibilité, en tant que solutions, vous devez utiliser la fonction d' appel Windows 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 transmettre à 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%
Utilisation
appel mvn clean package
sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean
gradle