เปรียบเทียบและรวมไฟล์ซอร์สโค้ดใน Java

เปรียบเทียบและรวมไฟล์ซอร์สโค้ดใน Java

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

บทความนี้จะครอบคลุมประเด็นต่างๆ ที่ระบุด้านล่าง:

ไลบรารี Java เพื่อเปรียบเทียบและรวมไฟล์ซอร์สโค้ด

ในการเปรียบเทียบและรวมไฟล์ซอร์สโค้ด เราจะใช้การเปรียบเทียบโค้ด Java library ซึ่งประกอบด้วยคุณสมบัติการเปรียบเทียบซอร์สโค้ดที่สำคัญและโดดเด่นทั้งหมด โค้ด Java ที่เปรียบเทียบไลบรารีนี้สามารถ ดาวน์โหลด หรือสามารถติดตั้งได้โดยตรงโดยใช้การกำหนดค่า Maven ดังที่ระบุด้านล่าง

<repository>
    <id>groupdocs-artifacts-repository</id>
    <name>GroupDocs Artifacts Repository</name>
    <url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-comparison</artifactId>
    <version>22.11</version>
</dependency>

วิธีเปรียบเทียบและรวมไฟล์ซอร์สโค้ดใน Java

สมมติว่าเรามีไฟล์สองไฟล์ (source.cs และ target.cs) ของซอร์สโค้ดเวอร์ชันต่างๆ กัน ดังที่แสดงในภาพหน้าจอต่อไปนี้

ไฟล์ซอร์สโค้ดเพื่อเปรียบเทียบ

เมื่อพิจารณาจากไฟล์ข้างต้นแล้ว มาเขียนโค้ดใน Java กันดีกว่าโดยทำตามขั้นตอนด้านล่าง:

  1. เริ่มต้นคลาส Comparer ด้วยเส้นทางหรือสตรีมของเอกสารต้นฉบับ
  2. เรียกใช้เมธอด add() และระบุเส้นทางหรือสตรีมของเอกสารเป้าหมาย
  3. เรียกใช้เมธอด compare()

ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นว่าคุณสามารถเปรียบเทียบและรวมไฟล์ซอร์สโค้ดใน Java ได้อย่างง่ายดายเพียงใด

//สร้างอินสแตนซ์ของวัตถุ Comparer ด้วยเส้นทางเอกสารต้นทางหรือสตรีม
try (Comparer comparer = new Comparer(SourceFile)) {
// เรียกใช้วิธีการเพิ่มและระบุเส้นทางเอกสารเป้าหมายหรือสตรีม
comparer.add(TargetFile);  
//เรียกใช้วิธีการเปรียบเทียบ
final Path resultPath = comparer.compare(ResultPath);        
} 

เป็นผลให้เราจะได้รับไฟล์ซอร์สโค้ดที่ผสานและไฟล์ HTML ที่เน้นการเปลี่ยนแปลงในโค้ด โปรดทราบว่าองค์ประกอบที่ถูกลบจะถูกทำเครื่องหมายด้วย สีแดง องค์ประกอบที่เพิ่ม – เป็น สีน้ำเงิน และองค์ประกอบที่แก้ไข – เป็น สีเขียว

เปรียบเทียบและรวมไฟล์ซอร์สโค้ด

รับรายการการเปลี่ยนแปลงโดยใช้ Java

เพื่อให้ได้รายการการเปลี่ยนแปลงทั้งหมดหลังการเปรียบเทียบ เราจะเขียนโค้ดตามขั้นตอนต่อไปนี้:

  1. เริ่มต้นวัตถุ Comparer ด้วยเส้นทางของไฟล์ต้นฉบับ
  2. เรียกใช้เมธอด add() และระบุเส้นทางของไฟล์เป้าหมาย
  3. เรียกใช้เมธอด compare()
  4. รับรายการการเปลี่ยนแปลงโดยใช้วิธี getChanges()

ตัวอย่างโค้ดด้านล่างสาธิตวิธีรับรายการการเปลี่ยนแปลงทั้งหมด

//เริ่มต้นวัตถุ Comparer ด้วยเส้นทางไฟล์ต้นฉบับ
try (Comparer comparer = new Comparer(sourceFile)) {
//เรียกใช้เมธอด [เพิ่ม] และระบุเส้นทางไฟล์เป้าหมาย
comparer.add(targetFile);
//โทรเปรียบเทียบวิธีการ
final Path resultPath = comparer.compare();
//รับรายการการเปลี่ยนแปลงโดยใช้เมธอด getChanges
ChangeInfo[] changes = comparer.getChanges();
//แสดงจำนวนการเปลี่ยนแปลง
System.out.println("Count of changes: " + changes.length);
}

ตัวเลือกขั้นสูงในไลบรารีการเปรียบเทียบโค้ด Java

หากคุณต้องการยอมรับหรือปฏิเสธโค้ดหลายเวอร์ชัน คุณอาจต้องใช้หรือละทิ้งการเปลี่ยนแปลง ในกรณีนี้ โปรดปฏิบัติตามขั้นตอนด้านล่าง:

  1. เริ่มต้นวัตถุของคลาส Comparer ด้วยเส้นทางหรือสตรีมของเอกสารต้นฉบับ
  2. เรียกเมธอด add() และกำหนดเส้นทางของเอกสารเป้าหมาย
  3. เรียกใช้เมธอด compare()
  4. เรียกใช้เมธอด getChanges() และรับรายการการเปลี่ยนแปลงที่ตรวจพบ
  5. ตั้งค่า ComparisonAction ของวัตถุการเปลี่ยนแปลงที่จำเป็นเป็นค่า ComparisonAction.ACCEPT หรือ ComparisonAction.REJECT
  6. เรียกเมธอด applyChanges() และส่งผ่านการรวบรวมการเปลี่ยนแปลงไป

ข้อมูลโค้ดต่อไปนี้แสดงวิธีใช้ตัวเลือกขั้นสูงของไลบรารีการเปรียบเทียบโค้ด

//เริ่มต้นวัตถุ Comparer ด้วยเส้นทางไฟล์ต้นฉบับ
try (Comparer comparer = new Comparer(sourcePath)) {
//เรียกใช้เมธอด [เพิ่ม] และระบุเส้นทางไฟล์เป้าหมาย
 comparer.add(targetPath);
//โทรเปรียบเทียบวิธีการ
final Path resultPath = comparer.compare(outputPath);
//รับรายการการเปลี่ยนแปลงโดยใช้เมธอด getChanges
ChangeInfo[] changes = comparer.getChanges();
//ตั้งค่า CompareAction ของวัตถุการเปลี่ยนแปลงที่จำเป็นเป็นค่า comparisonAction.ACCEPT
for (int i = 0; i < 10; i++) {
    changes[i].setComparisonAction(ComparisonAction.ACCEPT);
 }
//ตั้งค่า CompareAction ของวัตถุการเปลี่ยนแปลงที่จำเป็นเป็นค่า comparisonAction.REJECT
for (int i = 10; i < changes.length; i++) {
    	changes[i].setComparisonAction(ComparisonAction.REJECT);
}
// เรียกเมธอด ApplyChanges และส่งผ่านการรวบรวมการเปลี่ยนแปลงไป
comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}

รับใบอนุญาตฟรี

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

บทสรุป

โดยสรุป เราหวังว่าคุณจะได้เรียนรู้วิธีการเปรียบเทียบและรวมไฟล์ซอร์สโค้ดโดยทางโปรแกรมโดยใช้ไลบรารีเปรียบเทียบโค้ด Java เป็นผลให้คุณได้รับข้อมูลสรุปของเนื้อหาที่แทรกหรือลบ นอกจากนี้ คุณได้ผ่านวิธีการรับรายการการเปลี่ยนแปลงและยอมรับหรือปฏิเสธการเปลี่ยนแปลงที่ระบุแล้ว

คุณสามารถไปที่ เอกสาร เพื่อสำรวจคุณสมบัติอื่น ๆ

ถามคำถาม

คุณสามารถแจ้งให้เราทราบคำถามหรือข้อสงสัยของคุณได้ใน ฟอรั่ม ของเรา

คำถามที่พบบ่อย

จะเปรียบเทียบและรวมไฟล์ซอร์สโค้ดใน Java ได้อย่างไร

เริ่มต้นคลาส Comparer ด้วยเส้นทางหรือสตรีมเอกสารต้นทาง เรียกใช้เมธอด add() และตั้งค่าเส้นทางหรือสตรีมของเอกสารเป้าหมาย หลังจากนั้นให้เรียกใช้เมธอด compare() ของคลาส Comparer

ดูสิ่งนี้ด้วย