Ini adalah lingkungan yang telah saya atur di perusahaan saya, dan saya sedang bekerja dengannya sekarang.
Deskripsi lingkungan
Kami adalah tim yang terdiri dari 4 pengembang, mengerjakan proyek desktop Java . Kode sumber berada di bawah Mercurial , dengan repo utama di-host di server pengembangan kami. Kami kebanyakan menggunakan TortoiseHg untuk bekerja dengan Mercurial. Proyek-proyek yang kami buka bersumber dari BitBucket . Proyek ini dibangun dengan Maven . IDE yang kami gunakan adalah Netbeans , yang bekerja sangat baik dengan Maven (bekerja dengan Mercurial juga).
Server dev kami menjalankan Archiva , yang merupakan repositori proxy Maven. Kami menggunakan maven untuk membangun proyek, tetapi kami menggunakannya juga untuk menjalankannya (mvn exec), untuk menyebarkan artefak yang dihasilkan ke Archiva (rilis mvn), dan untuk menghasilkan perakitan dari artefak yang diselenggarakan oleh Archiva (mvn assembly).
Kami memiliki bugtracker Redmine juga, dan mengetahui repo Mercurial. Kami menggunakan klien RSS untuk mendapat informasi tentang aktivitas proyek (dari Redmine dan Mercurial). Kami juga memiliki server Jabber untuk saling mengirim pesan dan file.
Kami menyiapkan server Hudson (integrasi berkelanjutan) dan server Sonar (metrik kode). Tetapi dalam praktiknya kita tidak benar-benar menggunakannya.
Kami memiliki pilihan untuk menggunakan Windows atau Linux
Langkah-langkah untuk membuat rilis
Contoh untuk merilis versi 1.1.3
# tags the VCS, updates all the version numbers in the maven config file
mvn --batch-mode release:prepare -DreleaseVersion=1.1.3 -DdevelopmentVersion=1.1.4-SNAPSHOT
# performs a clean build, runs all tests, deploys to the server
mvn release:perform
# creates a unique jar (the final product) from the previously deployed artifacts (no recomilation involved)
<update the version number in a config file to 1.1.3>
mvn assembly:assembly