เรียกใช้การเรียกใช้ปลั๊กอิน Maven เดียวหรือไม่


98

ฉันคิดว่าฉันเป็นผู้ใช้ Maven ที่มีประสบการณ์ แต่ฉันมีความคิดที่จะทำสิ่งนี้!

ฉันสามารถใช้ปลั๊กอิน Maven sql เพื่อวางสร้างและติดตั้งสคีมาในฐานข้อมูลผ่านการดำเนินการปลั๊กอินที่ฉันกำหนดและผูกไว้กับpre-integration-testเฟส

อย่างไรก็ตามตอนนี้ฉันต้องการใช้ปลั๊กอิน sql เดียวกันเพื่อแทรกข้อมูลตัวอย่างเมื่อใดก็ตามที่ฉันต้องการจากบรรทัดคำสั่งนั่นคือไม่ผูกมัดกับเป้าหมายวงจรชีวิตใด ๆ มีชุดข้อมูลตัวอย่างที่แตกต่างกันเล็กน้อยดังนั้นฉันจึงต้องการกำหนดการดำเนินการที่แตกต่างกันเล็กน้อย

แต่มีวิธีเรียกใช้หนึ่งในการดำเนินการเหล่านี้จากบรรทัดคำสั่งโดยใช้ ID การดำเนินการหรือไม่?


คำตอบ:


139

ตามที่ระบุไว้ในวิธีการเรียกใช้การดำเนินการปลั๊กอิน maven โดยตรงจากบรรทัดคำสั่ง? ฟังก์ชันนี้ได้รับการปรับใช้เป็นMNG-5768และมีอยู่ใน Maven 3.3.1

การเปลี่ยนแปลงจะ:

ขยายไวยากรณ์การเรียกใช้ปลั๊กอินโดยตรงเพื่ออนุญาตพารามิเตอร์ @ การดำเนินการ - id ที่เป็นทางเลือกเช่น org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ecutionId

ดังนั้นตราบใดที่คุณให้รหัสการดำเนินการของคุณ:

mvn sql:execute@specific-execution-id

ใช้การดำเนินการที่กำหนดค่าไว้ใน pom ของคุณ


ดีมาก :)
GabrielBB

49

แต่มีวิธีเรียกใช้หนึ่งในการดำเนินการเหล่านี้จากบรรทัดคำสั่งโดยใช้ ID การดำเนินการหรือไม่?

ไม่ไปไม่ได้ สิ่งที่เป็นไปได้คือการกำหนดคอนฟิกูเรชัน"a"ที่จะใช้เมื่อเรียกใช้ปลั๊กอินจากบรรทัดคำสั่งโดยใช้default-cliรหัสการดำเนินการ"พิเศษ" :

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.4</version>
  ...
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        ...
      </configuration>
    </execution>
    ...
  </executions>
</plugin>

และโทรmvn sql:execute.

ดูรายละเอียดด้านล่าง (จากบันทึกประจำรุ่น Maven 2.2.0 ):

  • MNG-3401 - เริ่มต้นใน Maven 2.2.0 เป้าหมายเรียกโดยตรงจากบรรทัดคำสั่งสามารถกำหนดค่าใน POM แยกต่างหากจากสวดปลั๊กอินอื่น ๆ ที่ใช้พิเศษ ที่เรียกว่าexecutionId default-cliในกรณีที่ก่อนหน้านี้กำหนดค่าทั้งหมดสำหรับเป้าหมายบรรทัดคำสั่งได้ไปในการกำหนดค่าปลั๊กอินระดับ Maven 2.2.0 <execution>ช่วยให้การกำหนดค่าบรรทัดคำสั่งเฉพาะที่จะแยกออกจากกันเป็นของตัวเอง สำหรับข้อมูลเพิ่มเติมโปรดดูที่คู่มือการเริ่มต้นรหัสการดำเนินการ

1
ฉันพนันได้เลยว่าคุณสามารถบรรลุสิ่งที่ต้องการได้โดยใช้สองโปรไฟล์ที่แตกต่างกัน
Daniel Kaplan

4
คำตอบนี้ล้าสมัยไปแล้วกับ Maven เวอร์ชันปัจจุบัน ดูคำตอบโดย @Joe
Noremac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.