Apa yang dimaksud dengan "reaktor" di Maven?

105

Saya telah membaca tentang reaktor Maven dan saya bingung dengan penggunaan terminologinya. Saya telah membaca bahwa multi-modul adalah reaktor, Anda dapat memanipulasi reaktor maven dan bahwa reaktor adalah plugin. Apa sebenarnya reaktor itu?

perangkat keras
sumber

Jawaban:

164

Reaktor adalah bagian dari Maven yang memungkinkannya untuk mengeksekusi sasaran pada serangkaian modul. Seperti yang disebutkan dalam dokumentasi Maven 1.x tentang build multi-modul (konsep reaktor sudah ada di Maven 1.x), sedangkan modul adalah unit kerja terpisah, mereka dapat dikumpulkan bersama menggunakan reaktor untuk membangunnya secara bersamaan dan:

Reaktor menentukan urutan build yang benar dari dependensi yang dinyatakan oleh setiap proyek dalam deskriptor proyek masing-masing, dan kemudian akan melaksanakan serangkaian tujuan yang ditetapkan. Ini dapat digunakan untuk proyek pembangunan dan tujuan lainnya, seperti pembuatan situs.

Seperti yang dijelaskan, reactor adalah yang memungkinkan pembuatan multi-modul: ia menghitung grafik dependensi yang diarahkan antar modul, mendapatkan urutan build dari grafik ini (itulah mengapa dependensi siklik tidak diizinkan, yang bagaimanapun merupakan hal yang baik) dan kemudian menjalankan sasaran pada modul. Dengan kata lain, " build multi-modul " adalah " build reaktor " dan " build reaktor " adalah " build multi-modul ".

Di Maven 2.x, dukungan build multi-modul telah sangat ditingkatkan dan reaktor menjadi transparan bagi pengguna Maven. Tapi itu masih ada dan digunakan di bawah tenda.

Pada bulan September 2008 (yaitu lama setelah peluncuran Maven 2), plugin reaktor telah dibuat untuk memungkinkan interaksi (lagi) lebih dekat dengan reaktor Maven. Brett Porter membuat blog tentang itu di Reactor: Plugin Maven Favorit Baru Saya .

Sebagian besar fitur plugin reactor sekarang didukung secara native (sejak Maven 2.1.0). Lihat Tip dan Trik Maven: Opsi Reaktor Tingkat Lanjut .

Pascal Thivent
sumber
10
Mengapa situs maven mengatakan bahwa plugin ini "pensiun"?
Mopparthy Ravindranath
4
Karena plugin reactor adalah plugin yang (hanya) "berbicara" dengan reactor yang sebenarnya. Jadi bukan reaktor itu sendiri yang dihentikan tetapi sebuah plugin yang terkait dengannya.
Lonzak
8

Reaktor digunakan ketika proyek memiliki multi-modul.

Pekerjaan yang dilakukan oleh reaktor adalah:

  • Mengumpulkan detail modul
  • Menyortir urutan berdasarkan ketergantungan
  • Membangun proyek secara berurutan

Dimulai dengan rilis 2.1, terdapat opsi baris perintah baru yang memungkinkan Anda memanipulasi cara Maven akan membangun proyek multi-modul. Opsi baru ini adalah:

-rf, --resume-from
    Resume reactor from specified project
-pl, --projects
    Build specified reactor projects instead of all projects
-am, --also-make
    If project list is specified, also build projects required by the list
-amd, --also-make-dependents
    If project list is specified, also build projects that depend on projects on the list  

sumber

Premraj
sumber