Maven: การใช้ปลั๊กอิน Exec Maven และการอ่านคุณสมบัติของโปรเจ็กต์

ฉันมีสถานการณ์ที่ฉันต้องอ่านไฟล์คุณสมบัติบางไฟล์แล้วเรียกโปรแกรมภายนอก

  • สำหรับการอ่านไฟล์คุณสมบัติ ฉันใช้ Properties Maven Plugin โดยใช้ read-project-properties ในขั้นตอนการตรวจสอบความถูกต้อง

  • สำหรับการรันโปรแกรมภายนอก ฉันใช้ Exec Maven Plugin กำลังเรียก exec:exec เป้าหมาย

อย่างไรก็ตาม ดูเหมือนว่าถ้าฉันเรียก "mvn exec:exec" เฟสการตรวจสอบความถูกต้องจะไม่ถูกเรียก และด้วยเหตุนี้ คุณสมบัติจึงไม่ถูกอ่าน

และในสถานการณ์ปัจจุบันของฉัน ฉันไม่สามารถผูก exec:exec กับเฟสใด ๆ ได้ (และนั่นเป็นเพราะเฟสอื่น ๆ ทั้งหมดมีงานเฉพาะเจาะจงที่ต้องดูแลและสิ่งที่ฉันพยายามดำเนินการด้วย exec:exec ไม่ได้แมปกับใด ๆ ของ ขั้นตอนเหล่านี้ เป็นสิ่งที่ฉันพยายามทำแบบสแตนด์อโลนมากกว่า)

วิธีแก้ปัญหาเดียวที่ฉันพบคือโทร mvn validate exec:exec ซึ่งใช้งานได้ แต่คำถามของฉันคือ:

  1. เป็นความคิดที่ดีหรือไม่ที่จะผสมเฟสและเป้าหมายเป็นส่วนหนึ่งของการดำเนินการ maven?
  2. หรือมีวิธีให้ฉันทำให้ปลั๊กอิน exec อ่านคุณสมบัติได้หรือไม่?

person Sujay    schedule 01.08.2013    source แหล่งที่มา


คำตอบ (1)


คุณสามารถใช้โปรไฟล์เพื่อเชื่อมโยงกับเฟสเฉพาะ แต่ เฉพาะในบางสถานการณ์ / สภาพแวดล้อมบางอย่าง ได้ไหม

http://maven.apache.org/guides/introduction/introduction-to-profiles.html

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

การสร้างวงจรชีวิตใหม่ของคุณเองดูเหมือนจะเป็นไปได้ แม้ว่าจะไม่ใช่เรื่องง่ายก็ตาม

https://community.jboss.org/wiki/CreatingACustomLifecycleInMaven?_sscc=t

พูดตามตรง ฉันจะยึดติดกับบรรทัดคำสั่งที่คุณมี เรียก validate แล้วตามด้วย exec ฉันไม่ทราบถึงผลข้างเคียงใดๆ และอย่างที่คุณบอกว่ามันเป็นแค่งานประเภทเดี่ยวๆ ในท้องถิ่นเท่านั้น

person Graham Griffiths    schedule 01.08.2013
comment
ขอบคุณสำหรับคำตอบของคุณเกรแฮม จริงๆ แล้วฉันคิดว่าจะใช้โปรไฟล์แยกต่างหาก สิ่งเดียวที่ฉันไม่ชอบเกี่ยวกับเรื่องนี้คือฉันกำลังทำซ้ำปลั๊กอินคุณสมบัติของฉัน (ซึ่งครั้งหนึ่งเคยเป็นและอีกอันอยู่ในโปรไฟล์) ฉันหวังว่าจะเห็นว่ามีวิธีแก้ปัญหาที่สะอาดกว่าในเส้นทางนี้หรือไม่ - person Sujay; 01.08.2013