ในฐานะนักพัฒนา Java หากคุณกำลังจะสร้างเครื่องมือเปรียบเทียบซอร์สโค้ดหรือแอปพลิเคชัน หรือคุณอาจต้องจัดการไฟล์โค้ดหลายเวอร์ชัน คุณอาจคิดถึงวิธีเปรียบเทียบและรวมไฟล์ซอร์สโค้ดใน Java หากเป็นเช่นนั้น บทความนี้จะอธิบายว่าเราสามารถทำได้ง่ายเพียงใดโดยไม่ต้องเขียนโค้ดหลายบรรทัด นอกจากนี้ เราจะมาดูกันว่าเราจะดึงข้อมูล ยอมรับ หรือละทิ้งการเปลี่ยนแปลงในขณะที่รวมไฟล์ซอร์สโค้ดได้อย่างไร
บทความนี้จะครอบคลุมประเด็นต่างๆ ที่ระบุด้านล่าง:
- ไลบรารี 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 กันดีกว่าโดยทำตามขั้นตอนด้านล่าง:
- เริ่มต้นคลาส Comparer ด้วยเส้นทางหรือสตรีมของเอกสารต้นฉบับ
- เรียกใช้เมธอด add() และระบุเส้นทางหรือสตรีมของเอกสารเป้าหมาย
- เรียกใช้เมธอด compare()
ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นว่าคุณสามารถเปรียบเทียบและรวมไฟล์ซอร์สโค้ดใน Java ได้อย่างง่ายดายเพียงใด
//สร้างอินสแตนซ์ของวัตถุ Comparer ด้วยเส้นทางเอกสารต้นทางหรือสตรีม
try (Comparer comparer = new Comparer(SourceFile)) {
// เรียกใช้วิธีการเพิ่มและระบุเส้นทางเอกสารเป้าหมายหรือสตรีม
comparer.add(TargetFile);
//เรียกใช้วิธีการเปรียบเทียบ
final Path resultPath = comparer.compare(ResultPath);
}
เป็นผลให้เราจะได้รับไฟล์ซอร์สโค้ดที่ผสานและไฟล์ HTML ที่เน้นการเปลี่ยนแปลงในโค้ด โปรดทราบว่าองค์ประกอบที่ถูกลบจะถูกทำเครื่องหมายด้วย สีแดง องค์ประกอบที่เพิ่ม – เป็น สีน้ำเงิน และองค์ประกอบที่แก้ไข – เป็น สีเขียว
รับรายการการเปลี่ยนแปลงโดยใช้ Java
เพื่อให้ได้รายการการเปลี่ยนแปลงทั้งหมดหลังการเปรียบเทียบ เราจะเขียนโค้ดตามขั้นตอนต่อไปนี้:
- เริ่มต้นวัตถุ Comparer ด้วยเส้นทางของไฟล์ต้นฉบับ
- เรียกใช้เมธอด add() และระบุเส้นทางของไฟล์เป้าหมาย
- เรียกใช้เมธอด compare()
- รับรายการการเปลี่ยนแปลงโดยใช้วิธี 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
หากคุณต้องการยอมรับหรือปฏิเสธโค้ดหลายเวอร์ชัน คุณอาจต้องใช้หรือละทิ้งการเปลี่ยนแปลง ในกรณีนี้ โปรดปฏิบัติตามขั้นตอนด้านล่าง:
- เริ่มต้นวัตถุของคลาส Comparer ด้วยเส้นทางหรือสตรีมของเอกสารต้นฉบับ
- เรียกเมธอด add() และกำหนดเส้นทางของเอกสารเป้าหมาย
- เรียกใช้เมธอด compare()
- เรียกใช้เมธอด getChanges() และรับรายการการเปลี่ยนแปลงที่ตรวจพบ
- ตั้งค่า ComparisonAction ของวัตถุการเปลี่ยนแปลงที่จำเป็นเป็นค่า ComparisonAction.ACCEPT หรือ ComparisonAction.REJECT
- เรียกเมธอด 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