จุดหนึ่งที่ฉันไม่เคยเห็นมาก่อนคือมีปลั๊กอินสำหรับ IDE ที่จะบังคับใช้ชุดกฎ CheckStyle กับโค้ดของคุณในขณะที่ปลั๊กอิน PMD จะรายงานเฉพาะการละเมิดเท่านั้น ตัวอย่างเช่นในโครงการหลายไซต์ที่มีทีมเขียนโปรแกรมหลายทีมสิ่งสำคัญคือต้องบังคับใช้มาตรฐานอย่างจริงจังแทนที่จะรายงานเรื่องเหล่านี้
เครื่องมือทั้งสองมีปลั๊กอินสำหรับ IntelliJ, NetBeans และ Eclipse (ในมุมมองของฉันสิ่งนี้ครอบคลุมการใช้งานส่วนใหญ่) ฉันไม่คุ้นเคยกับ NetBeans ดังนั้นจึงสามารถแสดงความคิดเห็นได้เฉพาะ IntelliJ และ Eclipse เท่านั้น
อย่างไรก็ตามปลั๊กอิน PMD สำหรับ IntelliJ และ Eclipse จะสร้างรายงานตามความต้องการเกี่ยวกับการละเมิด PMD ภายใน codebase โครงการ
ในทางกลับกันปลั๊กอิน CheckStyle จะเน้นการละเมิดได้ทันทีและ (อย่างน้อยสำหรับ IntelliJ ฉันมีประสบการณ์น้อยกว่ากับ Eclipse) ได้รับการกำหนดค่าให้แปลงปัญหาบางอย่างโดยอัตโนมัติ (เช่นสำหรับ 'OneStatementPerLine' จะวาง CR-LF ระหว่างคำสั่งสำหรับ "NeedBraces" จะเพิ่มวงเล็บปีกกาในจุดที่ขาด ฯลฯ ) เห็นได้ชัดว่ามีเพียงการละเมิดที่ง่ายกว่าเท่านั้นที่สามารถแก้ไขได้โดยอัตโนมัติ แต่ยังคงเป็นความช่วยเหลือสำหรับโครงการเดิมหรือโครงการที่ตั้งอยู่ในหลายสถานที่
'ตามความต้องการ' สำหรับ PMD หมายความว่าผู้พัฒนาต้องตัดสินใจเรียกใช้รายงานอย่างมีสติ ในขณะที่การละเมิด Checkstyle จะรายงานโดยอัตโนมัติเมื่อเกิดขึ้น ในขณะที่ PMD ทำมีชุดกฎที่กว้างขวางกว่า แต่ในใจของฉันการคาดการณ์ / การรายงานการละเมิดโดยอัตโนมัติใน IDE นั้นคุ้มค่ากับความยุ่งยากในการรักษากฎ 2 ชุด
ดังนั้นสำหรับโครงการใด ๆ ที่ฉันทำงานอยู่เราจึงใช้ทั้งสองเครื่องมือ Checkstyle ที่บังคับใช้ใน IDE PMD ที่รายงานใน IDE และทั้งรายงานและวัดผลในบิลด์ (ผ่าน Jenkins)