จะรันคำสั่ง maven มากกว่าหนึ่งคำสั่งในไฟล์ bat ได้อย่างไร


115

ฉันสร้างไฟล์ค้างคาวเช่น:

mvn สะอาด;
แพ็คเกจ mvn;

แต่ไม่ได้ผลมีเพียงคำสั่งแรกเท่านั้นที่ดำเนินการ

ใครสามารถช่วยฉัน?

คำตอบ:


252

ใช้

call mvn clean
call mvn package

โปรดทราบว่าคุณไม่จำเป็นต้องใช้เครื่องหมายอัฒภาคในไฟล์แบตช์ และเหตุผลที่คุณต้องใช้callก็mvnคือไฟล์แบตช์และไฟล์แบตช์ต้องโทรหากันด้วยcallมิฉะนั้นการควบคุมจะไม่ส่งกลับไปยังผู้โทร

หากคุณต้องการให้คำสั่งที่ตามมาสะท้อนไปยังบรรทัดคำสั่ง (แสดงในเอาต์พุตแบทช์) คุณต้องทำecho onหลังจากcall mvnเสร็จสิ้น (ในบรรทัดถัดไป) นี่เป็นเพราะmvnปิดเสียงสะท้อนและไม่เปิดอีกครั้ง


2
เช่นเดียวกันกับgradle
Prabs

27

คำตอบของ Joey นั้นยอดเยี่ยม แต่บางทีตัวอย่างโค้ดที่สมบูรณ์กว่านี้จะช่วยให้คนอื่น ๆ เช่นฉันที่กำลังหาปัญหาที่คล้ายกันในการสร้างโครงการ maven หลายโครงการจากไฟล์แบตช์ใน 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

15

คุณยังสามารถมีซับเดียวต่อไปนี้:

call mvn clean package 

4
อย่างไรก็ตามควรใช้callเพื่อให้ทุกสิ่งที่พวกเขาเขียนหลังจากmvnคำสั่งทำงาน
Joey

9

ฉันมีโปรเจ็กต์อื่น ๆ ที่จะดำเนินการฉันสร้างค้างคาวขึ้นมานี้

@echo off
SET DEVELOPMENT_HOME=C:\Projects

cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install

cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install

8

ใช้ 'โทร' เมื่อคุณต้องการเรียกใช้ไฟล์แบตช์อื่นในไฟล์พาเรนต์ดังนั้นการควบคุมจะถูกส่งกลับไปยังไฟล์แบตช์หลักและจะดำเนินการต่อ

เช่นเรียก mvn clean install


5

bahaviour ที่สังเกตได้มาจากช่วงเวลาของ MS-DOS 1.0 และถูกเก็บไว้ด้วยเหตุผลด้านความเข้ากันได้เนื่องจากโซลูชันคุณจะใช้ฟังก์ชันการโทรของ Windows ด้วยวิธีต่อไปนี้:

call mvn clean
call mvn package

"call" เรียกใช้โปรแกรมแบตช์หนึ่งจากโปรแกรมอื่นและตีความว่าเป็นรูทีนย่อย


0
Use these commands in batch file to run ur script. Keep your batch file where 
you pom.xml file is housed

set ProjectPath=C:\TetonWorkSpace\PeriodicApplicationCheck
cd %ProjectPath%
mvn clean test -Dxmlfile=Smoke.xml
pause

To Create a Task in Task scheduler:
1. Follow steps as prescribed to create task
2. In the action tab, just place the path of ur batch file as shown below
    C:\TetonWorkSpace\PeriodicApplicationCheck\testng.bat
3. You can ignore the rest two options like Add Argument and Start in. Use it 
   only when there are certain conditions to be used without which the script 
    becomes dysfunctional.

การวางพา ธ ของแบตช์ไฟล์ในแท็บการดำเนินการ


-1

เราสามารถใช้สิ่งต่อไปนี้เพื่อสร้าง maven และส่งต่อไปยังโฟลเดอร์ unix ใดก็ได้เพื่อการพัฒนา

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%

-2

ใช้

โทร mvn clean package

sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean

1
ที่นี่มีข้อมูลมากกว่าคำตอบอื่น ๆ ที่ไหน? ดูเหมือนว่าฉันจะซ้ำกับคำตอบที่ยอมรับ (อายุ 9 ปี)
jeb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.