ฉันมีปัญหาเดียวกันนี้และฉันเขียนหนึ่งซับในเปลือกเพื่อทำ
rm -rf $(mvn help:evaluate -Dexpression=settings.localRepository\
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN -B \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn | grep -vF '[INFO]')/*
ฉันทำมันเป็นสายการบินเดียวเพราะฉันต้องการให้ Jenkins-project ดำเนินการนี้เมื่อใดก็ตามที่ฉันต้องการดังนั้นฉันไม่จำเป็นต้องล็อกออนเข้าสู่เนื้อหา ฯลฯ หากคุณยอมให้เชลล์สคริปต์ทำงานด้วยตัวเอง คุณสามารถเขียนมันสะอาดขึ้น:
#!/usr/bin/env bash
REPOSITORY=$(mvn help:evaluate \
-Dexpression=settings.localRepository \
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
--batch-mode \
| grep -vF '[INFO]')
rm -rf $REPOSITORY/*
ควรใช้ได้ แต่ฉันยังไม่ได้ทดสอบสคริปต์ทั้งหมด (ฉันได้ทดสอบคำสั่งแรก แต่ไม่ใช่สคริปต์ทั้งหมด) วิธีนี้มีข้อเสียของการรันคำสั่งที่ซับซ้อนขนาดใหญ่ก่อน มันคือ idempotent ดังนั้นคุณสามารถทดสอบด้วยตัวเอง การลบเป็นคำสั่งของตัวเองในภายหลังและสิ่งนี้จะช่วยให้คุณลองทั้งหมดและตรวจสอบว่ามันทำในสิ่งที่คุณคิดว่าทำเพราะคุณไม่ควรเชื่อถือคำสั่งการลบโดยไม่ต้องตรวจสอบ อย่างไรก็ตามมันฉลาดด้วยเหตุผลที่ดีอย่างหนึ่ง: พกพาสะดวก มันเคารพไฟล์ settings.xml ของคุณ หากคุณใช้คำสั่งนี้และบอกให้ maven ใช้ไฟล์ xml ที่เฉพาะเจาะจง (อาร์กิวเมนต์ -s หรือ --settings) สิ่งนี้จะยังคงใช้งานได้ ดังนั้นคุณไม่ต้องเล่นซอด้วยการทำให้แน่ใจว่าทุกอย่างเหมือนกันทุกที่
มันค่อนข้างลำบาก แต่ก็เป็นวิธีที่ดีในการทำธุรกิจ IMO
-U
ตั้งค่าสถานะซึ่งจะอัปเดตสิ่งประดิษฐ์หรือไม่