Risposte:
Uso
call mvn clean
call mvn package
Nota che non hai bisogno del punto e virgola nei file batch. E il motivo per cui è necessario utilizzare call
è che esso mvn
stesso è un file batch e i file batch devono chiamarsi a vicenda call
, altrimenti il controllo non torna al chiamante.
Se vuoi che i comandi successivi vengano visualizzati nella riga di comando (mostrati nell'output batch), devi farlo anche echo on
dopo che call mvn
è stato fatto (nella riga successiva). Questo perché mvn
disattiva l'eco e non lo riattiva.
La risposta di Joey è ottima, ma forse un esempio di codice più completo aiuterà chiunque altro come me a capire un problema simile di costruire più progetti Maven da un file batch in 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
Puoi anche avere il seguente one-liner:
call mvn clean package
call
modo che tutto ciò che scrivono dopo il mvn
comando venga eseguito.
Ho più progetti da eseguire, ho creato questo tipo di pipistrello:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Il comportamento osservato risale ai tempi di MS-DOS 1.0 ed è mantenuto per motivi di compatibilità, poiché per le soluzioni dovrai utilizzare la funzione di chiamata di Windows nel modo seguente:
call mvn clean
call mvn package
La "chiamata" esegue un programma batch da un altro e lo interpreta come subroutine.
possiamo usare quanto segue per costruire un Maven e passarlo a qualsiasi cartella unix per scopi di sviluppo
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%
Uso
chiamata mvn clean package
sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean
gradle