Jangan repot dengan arketipe sampai nanti
Untuk semua informasi yang perlu Anda ketahui tentang Maven, baca beberapa buku di situs web mereka . Namun, itu sedikit berlebihan untuk apa yang ingin Anda capai.
Untuk memulai, lay out aplikasi web Anda mengikuti struktur Maven standar untuk aplikasi web sebagai berikut. (Anda tidak memerlukan arketipe Maven untuk ini, hanya sekelompok folder standar, Anda dapat membuatnya dalam 2 menit).
src/main/java
- berisi kode Java produksi Anda
src/main/resources
- berisi sumber daya classpath produksi Anda (misalnya konteks Spring)
src/main/webapp
- (mengandung WEB-INF / web.xml tetapi tidak ada folder lib)
src/test/java
- berisi kode Java uji Anda
src/test/resources
- berisi sumber daya pengujian Anda (misalnya, umpan XML untuk pengujian layanan web, dll.)
Plugin dasar
Langkah selanjutnya adalah memilih sekelompok plugin. Tersangka yang biasa adalah, jelas yang mendukung bersih, kompilasi, dan sumber daya (datang sebagai bagian dari Maven tetapi Anda dapat mengonfigurasinya). Kemudian Anda akan memiliki tester unit pasti dan plugin PERANG. Itu cukup untuk membuat aplikasi web yang sangat mendasar.
Plugin yang lebih maju
Langkah selanjutnya adalah memperkenalkan Findbugs dan plugin PMD yang akan memberikan kode Anda menyeluruh dan melaporkan berbagai masalah potensial. Anda mungkin ingin memiliki JXR untuk kode sumber referensi silang, taglist untuk melacak TODO dan tag REFACTOR dan sebagainya. Diatas segalanya...
... Gunakan plugin Jetty untuk aplikasi web
Gunakan plugin Jetty untuk menjalankan file PERANG dalam IDE Anda untuk memudahkan debugging. Cepat dan kecil dan menyelesaikan pekerjaan dengan sangat cepat. Memiliki Jetty sebagai bagian dari build Maven Anda membuat proyek Anda dapat diuji pada mesin apa pun tanpa memerlukan IDE dengan beberapa panel Server kompleks yang dikonfigurasi. Ini juga memungkinkan Anda untuk mendeklarasikan dependensi pada file WAR lainnya yang pada gilirannya berarti Anda dapat menghasilkan lingkungan kerja yang lengkap yang terdiri dari beberapa aplikasi web semua dengan satu perintah "mvn clean jetty: run". Ini bekerja di mana saja, dan Anda bahkan dapat memberikan tes konfigurasi JNDI sehingga sumber data Spring-injected Anda semua dikonfigurasikan secara eksternal. Jika Anda menggabungkan pendekatan Jetty ini dengan halaman HTML demonstrasi standar (src/test/resources/demo.html
) Anda akan menghemat banyak waktu pengembang untuk mendapatkan lingkungan lokal yang berfungsi. Satu perintah dan Anda selesai. Sederhana.
Mengkonfigurasi IDE Anda
Dengan Maven itu mudah karena semua cowok besar mendukungnya: Eclipse, Netbeans dan, tentu saja Intellij favorit pribadi saya. Arahkan saja IDE Anda di pom.xml dan itu akan menangani semua dependensi yang terdaftar untuk Anda. Tidak ada lagi mucking tentang WEB-INF/lib
. Di Eclipse, Anda biasanya menggunakan File | Impor ... | Proyek Maven | pom.xml.
Integrasi dengan Hudson
Pertama instal Hudson (ini hanya webapp) dan kemudian targetkan sistem kontrol versi Anda sehingga memeriksa versi yang sesuai. Langkah terakhir Anda adalah mengkonfigurasinya sehingga menggunakan Maven untuk melakukan build. Jelas Maven harus diinstal pada mesin build Anda (dengan asumsi itu berbeda dari mesin pengembangan Anda).
Hudson hanya membuat snapshot
Suruh Hudson melakukan build snapshot, dan tinggalkan build rilis untuk proses manual. Menggunakan pendekatan itu akan berarti bahwa pengembang dapat membagikan kodenya di bawah revisi snapshot (mis. 1.0.0-SNAPSHOT) dan hanya jika ia dapat melewati build maka akan dibagikan ke repositori tim. Biasanya, Hudson akan mengeksekusi "mvn clean deploy" walaupun menyertakan tujuan "site" juga dapat menjadi bagian dari proses Anda karena itu akan membuat situs web proyek kecil untuk setiap bangunan. Pengembang di tim akan memiliki bangunan snapshot yang diperbarui secara otomatis dimasukkan ke dalam proyek mereka melalui proses manajemen ketergantungan Maven.
Hudson menyediakan banyak plugin yang dapat mendukung semua metrik. Favorit pribadi saya adalah untuk melacak jumlah tes yang lulus per proyek dari waktu ke waktu. Sangat bagus untuk menunjukkan kepada manajemen bahwa jumlah dan cakupan tes unit Anda semakin meningkat.
Panduan pengaturan umum
Bagi repositori Anda ke dalam setidaknya struktur berikut:
- team-release - Semua artefak produksi yang dirilis pergi ke sini
- team-snapshot - Semua artefak pengembangan snapshot Anda buka di sini
- rilis pihak ketiga - Semua perpustakaan pihak ketiga pendukung Anda buka di sini (mis. Musim Semi, Hibernasi, dll.)
Akun pengguna pengembang seharusnya tidak dapat menulis ke repositori tim, baik snapshot atau rilis. Ini akan memungkinkan pengembang untuk memotong Hudson jika mereka sedang terburu-buru dan dengan cepat akan menjadi norma.
Pastikan Anda selalu mengunduh sumber, javadocs, dan tanda tangan SHA untuk semua pihak ketiga Anda. Jarvana adalah penjelajah repositori yang sangat baik untuk semua kelas yang sulit ditemukan.
Pertimbangkan untuk menginstal manajer repositori seperti Nexus atau Artifactory untuk memungkinkan kontrol yang lebih baik atas repositori Anda yang terus bertambah.