6.1 บทนำเกี่ยวกับปลั๊กอิน
วงจรชีวิตมาตรฐานสามารถปรับปรุงได้ด้วยฟังก์ชันการทำงานโดยใช้ปลั๊กอิน Maven ปลั๊กอินอนุญาตให้คุณแทรกขั้นตอนใหม่ลงในวงจรมาตรฐาน (เช่น การกระจายไปยังแอ็พพลิเคชันเซิร์ฟเวอร์) หรือขยายขั้นตอนที่มีอยู่
ปลั๊กอินใน Maven ไม่ใช่สิ่งพิเศษ ตรงกันข้าม เป็นสิ่งที่พบได้บ่อยและบ่อยที่สุด ท้ายที่สุด ถ้าคุณต้องการกำหนดความแตกต่างในการสร้างโครงการของคุณ คุณต้องระบุข้อมูลที่จำเป็นใน pom.xml และวิธีเดียวที่จะทำได้คือเขียน "ปลั๊กอิน"
เนื่องจากปลั๊กอินเป็นเพียงสิ่งประดิษฐ์พอๆ กับการอ้างอิง จึงมีการอธิบายในลักษณะเดียวกัน แทนที่จะเป็นส่วนการพึ่งพา - ปลั๊กอิน แทนการพึ่งพา - ปลั๊กอิน แทนที่เก็บ - pluginRepositories ที่เก็บ - pluginRepository
ตัวอย่าง:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
การประกาศปลั๊กอินใน pom.xml ช่วยให้คุณสามารถแก้ไขเวอร์ชันของปลั๊กอิน ตลอดจนตั้งค่าพารามิเตอร์ที่จำเป็นสำหรับปลั๊กอิน กำหนดพารามิเตอร์การกำหนดค่าต่างๆ และเชื่อมโยงกับเฟสต่างๆ
กล่าวอีกนัยหนึ่ง Maven เรียกใช้ปลั๊กอินบางตัวที่ทำงานทั้งหมด นั่นคือหากเราต้องการสอน Maven เกี่ยวกับการสร้างพิเศษของโครงการเราจำเป็นต้องเพิ่มตัวบ่งชี้ pom.xml เพื่อเปิดใช้งานปลั๊กอินที่ต้องการในเฟสที่ต้องการและด้วยพารามิเตอร์ที่จำเป็น
จำนวนปลั๊กอินที่มีให้ใช้งานมีมากมาย มีปลั๊กอินมากมายที่อนุญาตให้คุณเรียกใช้เว็บแอปพลิเคชันโดยตรงจาก maven เพื่อทดสอบในเบราว์เซอร์ สร้างทรัพยากร และอื่น ๆ งานหลักของนักพัฒนาซอฟต์แวร์ในสถานการณ์นี้คือการค้นหาและใช้ชุดปลั๊กอินที่เหมาะสมที่สุด
6.2 วงจรชีวิตและปลั๊กอิน
บ่อยครั้งที่มีการใช้ปลั๊กอินเพื่อเรียกใช้ยูทิลิตี้คอนโซลบางประเภทในระหว่างการดำเนินการในระยะหนึ่ง นอกจากนี้ เรายังสามารถเรียกใช้คลาส Java ปกติได้ (ซึ่งแน่นอนว่ามีเมธอดหลักอยู่ด้วย)
ตัวอย่าง:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>first-argument</argument>
<argument>second-argument</argument>
</arguments>
</configuration>
</plugin>
โดยปกติปลั๊กอินสามารถกำหนดค่าได้อย่างยืดหยุ่นมาก ปลั๊กอินอย่างเป็นทางการทั้งหมดจากนักพัฒนา Maven ได้รับการบันทึกไว้เป็นอย่างดีบนเว็บไซต์อย่างเป็นทางการของ Maven ตัวอย่างเช่น สำหรับmaven-compiler-pluginในหน้า Apache Maven Project คุณจะเห็นรายการของตัวแปรทั้งหมดที่ควบคุมปลั๊กอิน ข้อมูลเกี่ยวกับปลั๊กอินมีอยู่ที่ลิงค์
ข้อมูลสำคัญเพิ่มเติม Maven เรียกปลั๊กอินที่แตกต่างกันในแต่ละช่วงของวงจรชีวิต ตัวอย่างเช่น โปรเจ็กต์ที่อธิบายถึงแอ็พพลิเคชัน Java บนเดสก์ท็อปแบบ Swing มีช่วงวงจรชีวิตที่แตกต่างจากขั้นตอนปกติสำหรับการพัฒนาเว็บแอ็พพลิเคชัน (สงคราม)
หรือ ตัวอย่างเช่น เมื่อดำเนินการคำสั่ง "mvn test" ขั้นตอนทั้งหมดในวงจรชีวิตของโครงการจะเริ่มต้นขึ้น: "ทรัพยากรกระบวนการ", "คอมไพล์", "คลาสกระบวนการ", "การทดสอบกระบวนการ -resources”, “test-compile” , ทดสอบ คุณสามารถดูการกล่าวถึงขั้นตอนเหล่านี้ได้ในข้อความที่แสดงโดย Maven:
[INFO] Scanning for projects...
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ codegym
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ codegym ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ codegym ---
[INFO] Surefire report directory: t:\ projects\codegym\target\surefire-reports
6.3 เป้าหมายใน Maven - เป้าหมาย
ใน Maven มีสิ่งเช่นเป้าหมาย (เป้าหมาย) เป้าหมายเป็นเหมือนเป้าหมายเริ่มต้นของ Maven เป้าหมายหลักสอดคล้องกับขั้นตอนหลัก:
- ตรวจสอบความถูกต้อง;
- รวบรวม;
- ทดสอบ;
- บรรจุุภัณฑ์;
- ตรวจสอบ;
- ติดตั้ง;
- ปรับใช้.
ในแต่ละช่วงของวงจรชีวิตโครงการ จะมีการเรียกใช้ปลั๊กอินเฉพาะ (jar-library) ซึ่งมีเป้าหมาย (goal) จำนวนหนึ่ง
ตัวอย่างเช่น ปลั๊กอิน "maven-compiler-plugin" มีสองเป้าหมาย: compiler:compile สำหรับการคอมไพล์ซอร์สโค้ดหลักของโปรเจ็กต์ และ compiler:testCompile สำหรับการทดสอบการคอมไพล์ รายการของขั้นตอนสามารถเปลี่ยนแปลงได้แม้ว่าจะไม่ค่อยจำเป็นก็ตาม
หากคุณต้องการดำเนินการที่ไม่ได้มาตรฐานในบางช่วง คุณเพียงแค่เพิ่มปลั๊กอินที่เหมาะสมใน pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>Name-plugin</artifactId>
<executions>
<execution>
<id>customTask</id>
<phase>generate-sources</phase>
<goals>
<goal>pluginGoal</goal>
</goals>
</execution>
</executions>
</plugin>
สิ่งที่สำคัญที่สุดในกรณีนี้คือการกำหนดชื่อของเฟส "การดำเนินการ/เฟส" สำหรับปลั๊กอิน ซึ่งคุณต้องฝังการเรียกไปยังเป้าหมายของปลั๊กอิน "เป้าหมาย" ตัวอย่างเช่น คุณต้องสร้างโค้ด Java ตาม xml จากนั้นคุณต้องมีเฟส "สร้างซอร์ส" ซึ่งวางไว้ก่อนการเรียกไปยังเฟสการคอมไพล์และเหมาะสำหรับการสร้างซอร์สส่วนหนึ่งของโปรเจ็กต์
GO TO FULL VERSION