Java'da Kaynak Kodu Dosyalarını Karşılaştırın ve Birleştirin

Java’da Kaynak Kodu Dosyalarını Karşılaştırın ve Birleştirin

Bir Java geliştiricisi olarak, bir kaynak kodu karşılaştırma aracı veya uygulaması oluşturacaksanız veya kod dosyalarının çeşitli versiyonlarını yönetmeniz gerekiyorsa, Java’da kaynak kod dosyalarını nasıl karşılaştırıp birleştireceğinizi düşünebilirsiniz. Eğer öyleyse, bu makale bunu birkaç satır kod yazmadan ne kadar kolay yapabileceğimizi açıklayacaktır. Ayrıca kaynak kod dosyalarını birleştirirken değişiklikleri nasıl geri alabileceğimizi, kabul edebileceğimizi veya atabileceğimizi de göreceğiz.

Bu makale aşağıda verilen noktaları kapsayacaktır:

Kaynak kod dosyalarını karşılaştırmak ve birleştirmek için Java kitaplığı

Kaynak kod dosyalarını karşılaştırmak ve birleştirmek için, tüm önemli ve olağanüstü kaynak kodu karşılaştırma özelliklerini içeren Java kod karşılaştırmasını kütüphane kullanacağız. Bu Java kodu karşılaştırma kitaplığı indirilebilir olabilir veya aşağıda verilen Maven yapılandırması kullanılarak doğrudan kurulabilir.

<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’da kaynak kod dosyaları nasıl karşılaştırılır ve birleştirilir

Aşağıdaki ekran görüntüsünde gösterildiği gibi, kaynak kodun farklı versiyonlarına ait iki dosyamız (source.cs ve target.cs) olduğunu varsayalım.

Karşılaştırılacak kaynak kod dosyaları

Yukarıdaki dosyaları göz önünde bulundurarak aşağıdaki adımları takip ederek Java’da bir kod pasajı yazalım:

  1. Kaynak belgenin yolu veya akışıyla Comparer sınıfını başlatın.
  2. add() yöntemini çağırın ve hedef belgenin yolunu veya akışını belirtin.
  3. compare() yöntemini çağırın.

Aşağıdaki kod örneği, Java’daki kaynak kod dosyalarını ne kadar kolay karşılaştırabileceğinizi ve birleştirebileceğinizi gösterir.

//Kaynak belge yolu veya akışıyla Karşılaştırıcı nesnesini somutlaştırın;
try (Comparer comparer = new Comparer(SourceFile)) {
// Ekleme yöntemini çağırın ve hedef belge yolunu veya akışını belirtin.
comparer.add(TargetFile);  
//Karşılaştırma yöntemini çağırın.
final Path resultPath = comparer.compare(ResultPath);        
} 

Sonuç olarak, birleştirilmiş kaynak kod dosyasını ve koddaki değişiklikleri vurgulayan bir HTML dosyasını elde edeceğiz. Silinen öğelerin kırmızı , eklenen öğelerin mavi ve değiştirilen öğelerin yeşil renkle işaretleneceğini lütfen unutmayın.

Kaynak kodu dosyalarını karşılaştırın ve birleştirin

Java kullanarak değişikliklerin listesini alın

Karşılaştırma sonrasında tüm değişikliklerin listesini almak için kodu aşağıdaki adımlara göre yazacağız:

  1. Comparer nesnesini kaynak dosyanın yolu ile başlatın.
  2. add() yöntemini çağırın ve hedef dosyanın yolunu belirtin.
  3. compare() yöntemini çağırın.
  4. getChanges() yöntemini kullanarak değişikliklerin listesini alın.

Aşağıdaki kod örneği, tüm değişikliklerin listesinin nasıl alınacağını gösterir.

//Karşılaştırıcı nesnesini kaynak dosya yolu ile başlat
try (Comparer comparer = new Comparer(sourceFile)) {
//[add][] yöntemini çağırın ve hedef dosya yolunu belirtin.
comparer.add(targetFile);
//Karşılaştırma yöntemini çağırın
final Path resultPath = comparer.compare();
//GetChanges yöntemini kullanarak değişikliklerin listesini alın
ChangeInfo[] changes = comparer.getChanges();
//Değişiklik sayısını görüntüle
System.out.println("Count of changes: " + changes.length);
}

Java kod karşılaştırma kitaplığında gelişmiş seçenekler

Birkaç kod sürümünü kabul etmeniz veya reddetmeniz gerekiyorsa değişiklikleri uygulamanız veya iptal etmeniz gerekebilir. Bu durumda lütfen aşağıda verilen adımları izleyin:

  1. Kaynak belgenin yolu veya akışıyla Comparer sınıfının nesnesini başlatın.
  2. add() yöntemini çağırın ve hedef belgenin yolunu ayarlayın.
  3. compare() yöntemini çağırın.
  4. getChanges() yöntemini çağırın ve tespit edilen değişikliklerin listesini alın.
  5. Gerekli değişiklik nesnesinin ComparisonAction değerini, ComparisonAction.ACCEPT veya ComparisonAction.REJECT değerine ayarlayın.
  6. applyChanges() yöntemini çağırın ve değişikliklerin koleksiyonunu ona iletin.

Aşağıdaki kod parçacığı, kod karşılaştırma kitaplığının gelişmiş seçeneklerinin nasıl kullanılacağını gösterir.

//Karşılaştırıcı nesnesini kaynak dosya yolu ile başlat
try (Comparer comparer = new Comparer(sourcePath)) {
//[add][] yöntemini çağırın ve hedef dosya yolunu belirtin.
 comparer.add(targetPath);
//Karşılaştırma yöntemini çağırın
final Path resultPath = comparer.compare(outputPath);
//GetChanges yöntemini kullanarak değişikliklerin listesini alın
ChangeInfo[] changes = comparer.getChanges();
//Gerekli değişiklik nesnesinin ComparisonAction değerini ComparisonAction.ACCEPT değerine ayarlayın.
for (int i = 0; i < 10; i++) {
    changes[i].setComparisonAction(ComparisonAction.ACCEPT);
 }
//Gerekli değişiklik nesnesinin ComparisonAction değerini ComparisonAction.REJECT değerine ayarlayın.
for (int i = 10; i < changes.length; i++) {
    	changes[i].setComparisonAction(ComparisonAction.REJECT);
}
// ApplyChanges yöntemini çağırın ve değişikliklerin koleksiyonunu ona iletin.
comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}

Ücretsiz Lisans Alın

API’yi değerlendirme sınırlamaları olmadan denemek için ücretsiz geçici lisans alabilirsiniz.

Çözüm

Özetlemek gerekirse, Java kod karşılaştırma kitaplığını kullanarak kaynak kod dosyalarını programlı olarak nasıl karşılaştıracağınızı ve birleştireceğinizi öğrendiğinizi umuyoruz. Sonuç olarak, eklenen veya silinen içeriğin özetini elde edersiniz. Ayrıca değişiklik listesini alma ve belirlenen değişiklikleri kabul etme veya reddetme yollarını da geçtiniz.

Diğer özellikleri keşfetmek için belgeleri ziyaret edebilirsiniz.

Bir soru sor

Sorularınızı veya sorularınızı forumumuz üzerinden bize bildirebilirsiniz.

SSS

Java’daki kaynak kod dosyaları nasıl karşılaştırılır ve birleştirilir?

Kaynak belge yolu veya akışıyla Comparer sınıfını başlatın, add() yöntemini çağırın ve hedef belgenin yolunu veya akışını ayarlayın. Bundan sonra, Comparer sınıfının compare() yöntemini çağırın.

Ayrıca bakınız