Memodernisasi aplikasi Java dengan menggunakan modernisasi GitHub Copilot di CLI Copilot

Artikel ini memberikan gambaran umum tentang bagaimana pengembang Java dapat memodernisasi aplikasi mereka dengan menggunakan GitHub Copilot modernisasi plugin di Copilot CLI. Dengan menggunakan pendekatan ini, pengembang dapat memodernisasi aplikasi di mana pun mereka membuat kode. Plugin ini memberikan pengalaman end-to-end yang mulus - dari peningkatan dan migrasi ke penyebaran - membantu tim mempercepat transformasi, meningkatkan produktivitas, dan dengan percaya diri memindahkan aplikasi mereka ke platform modern.

Tangkapan layar dari CLI GitHub Copilot yang menunjukkan prompt modernisasi GitHub Copilot.

Nota

GitHub Copilot CLI tersedia dengan paket GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business, dan GitHub Copilot Enterprise. Jika Anda menerima Copilot dari organisasi, kebijakan CLI Copilot harus diaktifkan di pengaturan organisasi.

Dengan menggunakan Copilot CLI untuk modernisasi, Anda dapat menjalankan tugas modernisasi langsung dari terminal, tanpa perlu beralih ke IDE. Pendekatan ini mendukung alur kerja interaktif - human-in-the-loop - dan batch.

Apa yang dapat Anda lakukan

Capability Deskripsi
peningkatan Java Meningkatkan versi Java (8 → 11 → 17 → 21 → 25), memigrasikan Spring Boot 2.x ke 3.x, javax ke jakarta, dan API yang tidak digunakan lagi
Migrasi Azure Menilai dan memigrasikan aplikasi Java ke layanan Azure (Azure Service Bus, Azure SQL, Redis, Azure Key Vault, Application Insights, Identitas Terkelola)
CVE dan perbaikan kerentanan Memindai dan memperbaiki kerentanan CVE dalam dependensi Maven, termasuk analisis dependensi Log4j, Spring, Jackson, dan OWASP
Arsitektur ulang aplikasi Penulisan ulang struktural seperti dekomposisi monolit menjadi layanan mikro, modernisasi UI lama, dan ekstraksi modul
Sebarkan ke Azure Menyebarkan aplikasi Java yang ditingkatkan atau dimigrasikan langsung ke Azure

Prasyarat

Nota

Akun Azure diperlukan hanya untuk menyebarkan sumber daya ke Azure, dan tidak diperlukan saat menggunakan modernisasi GitHub Copilot untuk membuat perubahan kode.

Instal plugin

  1. Tambahkan marketplace dan instal plugin:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. Pastikan plugin diinstal dengan mencantumkan plugin yang terinstal:

    /plugin list
    

    Anda akan melihat github-copilot-modernization@github-copilot-modernization dalam daftar.

Tip

Untuk memperbarui plugin saat versi baru tersedia, jalankan:

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

Memulai tugas modernisasi

Opsi 1: Mulai dengan agen secara langsung

Navigasikan ke folder proyek Java Anda dan mulai Copilot CLI dengan agen modernisasi:

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

Opsi 2: Pilih agen dari dalam Copilot CLI

Jika Anda sudah berada dalam sesi CLI Copilot, gunakan perintah /agent untuk beralih ke agen modernisasi:

/agent

Pilih modernize dari daftar.

Important

Anda harus memilih github-copilot-modernization:modernize agen sebelum menjalankan perintah modernisasi apa pun. Tanpa memilih agen, Copilot CLI menggunakan agen default, yang tidak dapat menggunakan orkestrasi multi-agen penuh dan kemampuan migrasi khusus yang disediakan oleh plugin.

Menjalankan perintah modernisasi

Setelah agen aktif, jelaskan apa yang Anda inginkan dalam bahasa alami:

modernize my application

Atau lebih spesifik:

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

Untuk eksekusi tanpa pengawas, gunakan --allow-all bendera:

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

Cara kerja alur kerja

Plugin menggunakan alur kerja tiga fase yang berjalan secara otomatis. Anda tidak perlu memanggil setiap fase secara manual - orkestrator menangani perutean berdasarkan permintaan Anda.

Fase 1: Penilaian

  • Menemukan aplikasi Java di jalur yang ditentukan.
  • Menganalisis dependensi, kerangka kerja, dan versi Java.
  • Mengidentifikasi peluang dan risiko modernisasi.
  • Menyimpan hasil ke .github/modernize/assessment/.

Fase 2: Perencanaan

  • Memuat hasil penilaian.
  • Menghasilkan rencana tugas yang dapat dieksekusi.
  • Menyimpan rencana ke .github/modernize/<app>/plan.md dan tasks.json.

Fase 3: Eksekusi

  • Merutekan tugas ke agen pelaksana khusus berdasarkan jenis tugas.
  • Setiap pelaksana meminta pangkalan pengetahuan untuk pola migrasi.
  • Memantau kemajuan dengan coba lagi otomatis saat gagal.
  • Membuat commit terperinci untuk setiap tugas untuk ditinjau.

Orkestrator mendukung beberapa titik masuk tergantung pada niat Anda:

Workflow Saat aktif Apa yang terjadi
Maksud umum "modernisasi aplikasi saya" Alur lengkap menilai → merencanakan → menjalankan
Tugas tertentu "tingkatkan ke Java 21" Melewati penilaian, langsung ke perencanaan → eksekusi
Jalankan rencana yang ada "jalankan rencana" Melewati penilaian dan perencanaan, menjalankan rencana yang ada
Headless Eksekusi tanpa pengawas dengan --allow-all Sama seperti niat luas tanpa permintaan pengguna

Skenario umum

Meningkatkan aplikasi Java Anda

Untuk meningkatkan aplikasi Java Anda ke runtime atau versi kerangka kerja yang lebih baru, gunakan contoh berikut:

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

Tugas modernisasi kemudian dijalankan, termasuk menghasilkan rencana peningkatan, melakukan remediasi kode, membangun proyek, dan memeriksa kerentanan seperti yang ditunjukkan pada cuplikan layar berikut:

Screenshot CLI GitHub Copilot yang memperlihatkan tugas yang berjalan dalam skenario peningkatan Java.

Proyek ini berhasil ditingkatkan ke JDK 21 dan Spring Boot 3.2, dan ringkasan peningkatan ditampilkan.

Screenshot CLI GitHub Copilot yang memperlihatkan ringkasan peningkatan Java.

Memigrasikan aplikasi Java Anda ke Azure

Untuk memigrasikan aplikasi Java Anda ke Azure, jelaskan skenario migrasi Anda, seperti yang ditunjukkan dalam contoh berikut. Untuk informasi selengkapnya tentang tugas migrasi yang telah ditentukan sebelumnya, lihat Tugas yang Telah Ditentukan untuk modernisasi GitHub Copilot bagi pengembang Java.

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

Dengan perintah ini, tugas migrasi dijalankan dan menunjukkan kemajuan dalam CLI Copilot.

Screenshot CLI GitHub Copilot yang memperlihatkan tugas yang berjalan dalam skenario migrasi Java.

Saat proyek berhasil dimigrasikan ke Microsoft Azure Blob Storage, ringkasan migrasi ditampilkan.

Screenshot CLI GitHub Copilot yang memperlihatkan ringkasan migrasi Java.

Menyebarkan aplikasi Java Anda ke Azure

Setelah memutakhirkan atau memigrasikan aplikasi, Anda dapat menyebarkannya langsung dari Copilot CLI dengan menggunakan contoh berikut:

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.

Dengan menggunakan perintah ini, tugas penyebaran berjalan dan menunjukkan kemajuan dalam Copilot CLI.

Screenshot CLI GitHub Copilot yang menunjukkan detail penyebaran Java.

Ketika proyek berhasil disebarkan, ringkasan penyebaran ditampilkan.

Screenshot CLI GitHub Copilot yang memperlihatkan ringkasan penyebaran Java.

Troubleshooting

Plugin tidak ditemukan

# 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

Penilaian gagal: tidak ada aplikasi Java yang ditemukan

  • Verifikasi pom.xml atau build.gradle ada di akar proyek Anda.
  • Pastikan Anda berada di direktori yang benar sebelum memulai Copilot CLI.

Masalah server MCP

Plugin menggunakan server MCP yang ditentukan dalam konfigurasinya. Jika Anda mengalami masalah, coba instal ulang plugin untuk mengatur ulang konfigurasi MCP.

Berikan umpan balik

Jika Anda memiliki masukan tentang plugin modernisasi GitHub Copilot, buat issue pada repositori github-copilot-appmod.

Langkah selanjutnya