Copilot CLI'da GitHub Copilot modernleştirmeyi kullanarak Java uygulamalarını modernleştirme

Bu makalede, Java geliştiricilerin Copilot CLI içindeki GitHub Copilot modernleştirme eklentisini kullanarak uygulamalarını nasıl modernleştirebileceğine ilişkin genel bir bakış sağlanmaktadır. Geliştiriciler bu yaklaşımı kullanarak uygulamaları kodladıkları her yerde modernleştirebilir. Eklenti, yükseltme ve geçişten dağıtıma kadar sorunsuz, uçtan uca bir deneyim sunar. Ekiplerin dönüşümü hızlandırmasına, üretkenliği artırmasına ve uygulamalarını modern platformlara güvenle taşımasına yardımcı olur.

 GitHub Copilot modernleştirme istemi gösteren GitHub Copilot CLI ekran görüntüsü.

Uyarı

GitHub Copilot CLI, GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business ve GitHub Copilot Enterprise planlarıyla kullanılabilir. Bir kuruluştan Copilot alırsanız, Copilot CLI ilkesi kuruluşun ayarlarında etkinleştirilmelidir.

Modernleştirme için Copilot CLI kullanarak, IDE'ye geçiş yapmanız gerekmeyen modernleştirme görevlerini doğrudan terminalden çalıştırabilirsiniz. Bu yaklaşım hem etkileşimli - insanlı döngü - hem de toplu iş akışlarını destekler.

Yapabilecekleriniz

Kapasite Description
Java yükseltmesi Java sürümünü yükseltme (8 → 11 → 17 → 21 → 25), Spring Boot 2.x'i 3.x'e, javax'ı jakarta'ya ve kullanım dışı API'leri geçirme
Azure migration Java uygulamalarını değerlendirme ve Azure hizmetlerine geçirme (Azure Service Bus, Azure SQL, Redis, Azure Key Vault, Application Insights, Yönetilen Kimlik)
CVE ve güvenlik açığı düzeltme Log4j, Spring, Jackson ve OWASP bağımlılık analizi gibi Maven bağımlılıklarındaki CVE güvenlik açıklarını tarayın ve düzeltin
Uygulama arka mimarisi Monolitten mikro hizmetlere ayrıştırma, eski kullanıcı arayüzünün modernleştirilmesi ve modül çıkarma gibi yapısal yeniden yazımlar
Azure’a dağıtın Yükseltilmiş veya taşınan Java uygulamalarını doğrudan Azure'a dağıtın

Önkoşullar

Uyarı

Azure hesabı yalnızca kaynakları Azure dağıtmak için gereklidir ve kod değişiklikleri yapmak için GitHub Copilot modernleştirme kullanılırken gerekli değildir.

Eklentiyi yükleme

  1. Marketi ekleyin ve eklentiyi yükleyin:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. Yüklü eklentileri listeleyerek eklentinin yüklendiğini doğrulayın:

    /plugin list
    

    Listede github-copilot-modernization@github-copilot-modernization görmeniz gerekir.

Tavsiye

Yeni bir sürüm kullanılabilir olduğunda eklentiyi güncelleştirmek için şunu çalıştırın:

copilot plugin update github-copilot-modernization@github-copilot-modernization

Modernleştirme görevi başlatma

1. Seçenek: Doğrudan aracıyla başlayın

Java proje klasörünüze gidin ve modernleştirme aracısı ile CLI'Copilot başlatın:

cd /path/to/your/java-app
copilot --agent=github-copilot-modernization:modernize

2. Seçenek: Copilot CLI'nın içinden aracıyı seçin

Zaten bir Copilot CLI oturumundaysanız, modernleştirme aracısına geçmek için /agent komutunu kullanın:

/agent

Listeden modernize seçin.

Important

Herhangi bir modernleştirme istemlerini çalıştırmadan önce aracıyı github-copilot-modernization:modernize seçmeniz gerekir. Aracı seçmezseniz, Copilot CLI varsayılan aracıyı kullanır; bu aracı, eklentinin sağladığı tam çok aracılı orkestrasyon ve uzmanlaşmış geçiş yeteneklerinden yararlanamaz.

Modernleştirme istemi çalıştırma

Aracı etkin olduğunda, ne istediğinizi doğal dilde açıklayın:

modernize my application

Veya daha ayrıntılı bilgi:

upgrade this app to Java 21 and Spring Boot 3.2
migrate this Spring Boot app to Azure
fix CVE vulnerabilities in my project

Katılımsız yürütme için --allow-all bayrağını kullanın:

copilot --agent=github-copilot-modernization:modernize --allow-all

İş akışı nasıl çalışır?

Eklenti, otomatik olarak çalışan üç aşamalı bir iş akışı kullanır. Her aşamayı el ile çağırmanız gerekmez; orchestrator yönlendirmeyi isteğinize göre işler.

1. Aşama: Değerlendirme

  • Belirtilen yolda Java uygulamaları bulur.
  • Bağımlılıkları, çerçeveleri ve Java sürümünü analiz eder.
  • Modernleştirme fırsatlarını ve risklerini tanımlar.
  • Sonuçları .github/modernize/assessment/ öğesine kaydeder.

2. Aşama: Planlama

  • Değerlendirme sonuçlarını yükler.
  • Yürütülebilir bir görev planı oluşturur.
  • Planı .github/modernize/<app>/plan.md ve tasks.json öğelerine kaydeder.

3. Aşama: Yürütme

  • Görevleri, görev türüne göre özelleştirilmiş yürütücü aracılarına yönlendirir.
  • Her yürütücü, geçiş desenleri için bir bilgi bankası sorgular.
  • Hata durumunda otomatik yeniden deneme ile ilerleme durumunu izler.
  • Gözden geçirmek üzere ayrıntılı görev başına işlemeler oluşturur.

Düzenleyici, amacınıza bağlı olarak birden çok giriş noktası destekler:

Workflow Etkinleştirildiğinde Ne olur?
Geniş amaç "uygulamamı modernleştir" Uçtan uca değerlendir → planla → yürüt iş hattı
Belirli görev "Java 21'e yükselt" Değerlendirmeyi atlar, doğrudan planlama → yürütmeye gider
Mevcut planı yürütme "planı yürüt" Değerlendirme ve planlamayı atlar, mevcut bir planı çalıştırır
Arayüzsüz --allow-all ile gözetimsiz yürütme Kullanıcı istemleri olmadan geniş niyetle aynı

Yaygın senaryolar

Java uygulamanızı yükseltme

Java uygulamanızı daha yeni bir çalışma zamanı veya çerçeve sürümüne yükseltmek için aşağıdaki örneği kullanın:

copilot --agent=github-copilot-modernization:modernize
upgrade this project to JDK 21 and Spring Boot 3.2

Ardından, aşağıdaki ekran görüntüsünde gösterildiği gibi yükseltme planı oluşturma, kod düzeltme gerçekleştirme, projeyi oluşturma ve güvenlik açıklarını denetleme gibi modernleştirme görevi yürütülür:

 Java yükseltme senaryolarında çalışan görevleri gösteren GitHub Copilot CLI ekran görüntüsü.

Proje başarıyla JDK 21 ve Spring Boot 3.2'ye yükseltilir ve bir yükseltme özeti görüntülenir.

 Java yükseltme özetini gösteren GitHub Copilot CLI ekran görüntüsü.

Java uygulamanızı Azure geçirme

Java uygulamanızı Azure geçirmek için, aşağıdaki örnekte gösterildiği gibi geçiş senaryonuzu açıklayın. Önceden tanımlanmış geçiş görevleri hakkında daha fazla bilgi için Java geliştiricileri için GitHub Copilot modernleştirme için önceden tanımlanmış görevler başlıklı bölüme bakın.

copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage

Bu istemle, geçiş görevi yürütülür ve Copilot CLI'da ilerleme durumunu gösterir.

 Java geçiş senaryolarında çalışan görevleri gösteren GitHub Copilot CLI ekran görüntüsü.

Proje Microsoft Azure Blob Depolama'a başarıyla geçirildiğinde bir geçiş özeti görüntülenir.

 Java geçiş özetini gösteren GitHub Copilot CLI ekran görüntüsü.

Java uygulamanızı Azure dağıtma

Uygulamanızı yükselttikten veya geçirdikten sonra, aşağıdaki örneği kullanarak doğrudan Copilot CLI'dan dağıtabilirsiniz:

copilot --agent=github-copilot-modernization:modernize
Scan my project and help me plan how to containerize my application using the #appmod-get-containerization-plan tool. Execute the plan. The end goal is to have Dockerfiles that are able to be built.

Bu istemi kullanarak dağıtım görevi çalışır ve Copilot CLI'da ilerleme durumunu gösterir.

 Java dağıtım ayrıntılarını gösteren GitHub Copilot CLI ekran görüntüsü.

Proje başarıyla dağıtıldığında bir dağıtım özeti görüntülenir.

 Java dağıtım özetini gösteren GitHub Copilot CLI ekran görüntüsü.

Troubleshooting

Eklenti bulunamadı

# Verify marketplace is added
copilot plugin marketplace list

# Re-add the marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization

# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization

Değerlendirme başarısız oluyor: Java uygulama bulunamadı

  • pom.xml veya build.gradle öğesinin proje kök dizininizde bulunduğunu doğrulayın.
  • Copilot CLI'yi başlatmadan önce doğru dizinde olduğunuzdan emin olun.

MCP sunucusu sorunları

Eklenti, yapılandırmasında tanımlanan MCP sunucusunu kullanır. Sorunlarla karşılaşırsanız MCP yapılandırmasını sıfırlamak için eklentiyi yeniden yüklemeyi deneyin.

Geri bildirimde bulunun

GitHub Copilot modernleştirme eklentisi hakkında geri bildiriminiz varsa github-copilot-appmod deposunda sorun oluşturun.

Sonraki adım