مقایسه و ادغام فایل‌های کد منبع در جاوا

مقایسه و ترکیب فایل‌های کد منبع در جاوا

به عنوان یک توسعه‌دهنده جاوا، اگر قرار است یک ابزار یا برنامه مقایسه کد منبع بسازید یا ممکن است نیاز به مدیریت چندین نسخه از فایل‌های کد داشته باشید، پس ممکن است به این فکر کنید که چگونه می‌توان فایل‌های کد منبع را در Java مقایسه و ادغام کرد. اگر این‌طور است، این مقاله توضیح می‌دهد که چگونه به راحتی می‌توانیم این کار را بدون نوشتن تعداد زیادی خط کد انجام دهیم. علاوه بر این، خواهیم دید که چگونه می‌توانیم تغییرات را هنگام ادغام فایل‌های کد منبع بازیابی، پذیرش یا رد کنیم.

این مقاله به نکات زیر می‌پردازد:

کتابخانه Java برای مقایسه و ادغام فایل‌های کد منبع

برای مقایسه و ادغام فایل‌های کد منبع، ما از کتابخانه مقایسه کد Java library استفاده خواهیم کرد که شامل تمامی ویژگی‌های مهم و برجسته مقایسه کد منبع است. این کتابخانه مقایسه کد Java می‌تواند downloaded شود یا می‌توان آن را مستقیماً با استفاده از پیکربندی 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. Invoke add() method and specify target document’s path or stream.
  3. Invoke compare() method.

نمونه کد زیر نشان می‌دهد که چگونه به راحتی می‌توانید فایل‌های کد منبع را در Java مقایسه و ادغام کنید.

//ذخیره‌سازی شی Comparer با مسیر سند منبع یا جریان؛
try (Comparer comparer = new Comparer(SourceFile)) {
// متد add را فراخوانی کنید و مسیر سند هدف یا جریان را مشخص کنید.
comparer.add(TargetFile);  
//متد مقایسه را فراخوانی کنید.
final Path resultPath = comparer.compare(ResultPath);        
} 

در نتیجه، ما فایل کد منبع ادغام شده و یک HTML فایل که تغییرات در کد را مشخص می‌کند، دریافت خواهیم کرد. لطفاً توجه داشته باشید که عناصر حذف شده به رنگ قرمز، عناصر اضافه شده به رنگ آبی و عناصر تغییر یافته به رنگ سبز علامت‌گذاری خواهند شد.

فایل‌های کد منبع را مقایسه و ترکیب کنید.

لیست تغییرات را با استفاده از Java بگیرید.

برای دریافت لیست همه تغییرات پس از مقایسه، ما باید کد را طبق مراحل زیر بنویسیم:

  1. شیء Comparer را با مسیر فایل منبع 初始化 کنید.
  2. Invoke add() method and specify target file’s path.
  3. Invoke compare() method.
  4. لیست تغییرات را با استفاده از getChanges() متد به دست آورید.

کد نمونه زیر نشان می‌دهد که چگونه می‌توان لیست تمام تغییرات را دریافت کرد.

//شیء Comparer را با مسیر فایل منبع راه‌اندازی کنید
try (Comparer comparer = new Comparer(sourceFile)) {
//Invoke [add][] method and specify target file path.
comparer.add(targetFile);
//Call compare method
final Path resultPath = comparer.compare();
//لیست تغییرات را با استفاده از روش getChanges بدست آورید.
ChangeInfo[] changes = comparer.getChanges();
//تعداد تغییرات را نمایش دهید
System.out.println("Count of changes: " + changes.length);
}

گزینه‌های پیشرفته در کتابخانه مقایسه کد Java

اگر شما نیاز دارید که چندین نسخه از کد را قبول یا رد کنید، ممکن است مجبور باشید تغییرات را اعمال یا رد کنید. در این مورد، لطفاً مراحل زیر را دنبال کنید:

  1. شیء کلاس Comparer را با مسیر یا جریان سند منبع مقداردهی اولیه کنید.
  2. Call add() method and set target document’s path.
  3. Invoke compare() method.
  4. Invoke getChanges() method and obtain detected changes list.
  5. Set ComparisonAction of needed change object to ComparisonAction.ACCEPT or ComparisonAction.REJECT value.
  6. Call applyChanges() method and pass collection of changes to it.

قطعه کد زیر نحوه استفاده از گزینه‌های پیشرفته کتابخانه مقایسه کد را نشان می‌دهد.

//مقداردهی شی Comparer با مسیر فایل منبع
try (Comparer comparer = new Comparer(sourcePath)) {
//Invoke [add][] method and specify target file path.
 comparer.add(targetPath);
//Call compare method
final Path resultPath = comparer.compare(outputPath);
//لیست تغییرات را با استفاده از متد getChanges دریافت کنید.
ChangeInfo[] changes = comparer.getChanges();
//Set ComparisonAction of needed change object to ComparisonAction.ACCEPT value.
for (int i = 0; i < 10; i++) {
    changes[i].setComparisonAction(ComparisonAction.ACCEPT);
 }
//Set ComparisonAction of needed change object to ComparisonAction.REJECT value.
for (int i = 10; i < changes.length; i++) {
    	changes[i].setComparisonAction(ComparisonAction.REJECT);
}
// متد applyChanges را صدا بزنید و مجموعه‌ای از تغییرات را به آن منتقل کنید.
comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}

یک مجوز رایگان بگیرید

شما می‌توانید یک مجوز موقت رایگان برای آزمایش API بدون محدودیت‌های ارزیابی دریافت کنید.

نتیجه گیری

برای خلاصه‌سازی، امیدواریم که شما یاد گرفته‌اید چگونه به صورت برنامه‌نویسی فایل‌های کد منبع را با استفاده از یک کتابخانه مقایسه کد Java مقایسه و ادغام کنید. در نتیجه، شما خلاصه‌ای از محتویات اضافه‌شده یا حذف‌شده دریافت کرده‌اید. علاوه بر این، شما مراحل لازم برای دریافت لیست تغییرات و پذیرش یا رد تغییرات شناسایی‌شده را نیز مشاهده کرده‌اید.

شما می‌توانید به documentation مراجعه کنید تا ویژگی‌های دیگر را بررسی کنید.

Ask a question

شما می‌توانید سوالات یا پرسش‌های خود را در forum به ما اطلاع دهید.

FAQs

چگونه فایل‌های کد منبع را در Java مقایسه و ادغام کنیم؟

کلاس Comparer را با مسیر یا جریان سند منبع اولیه کنید، متد add() را فراخوانی کنید و مسیر یا جریان سند هدف را تنظیم کنید. بعد از آن، متد compare() کلاس Comparer را فراخوانی کنید.

به همچنین نگاه کنید