Bagaimana cara membuat PPA untuk proyek Maven?

8

Saya ingin mencoba membuat PPA saya sendiri. Proyek yang saya miliki adalah proyek java yang dibangun dengan pakar. Inilah yang telah saya lakukan sejauh ini:

  • Membuat PPA.
  • Siapkan proyek baru di Launchpad.
  • Menambahkan cabang yang mengimpor proyek saya dari repositori SVN.
  • Buat resep untuk cabang itu yang menerbitkan build ke PPA saya.

Di sinilah aku terjebak.

Saya sudah membaca banyak tutorial dan banyak menggunakan Google; tetapi, saya tidak dapat menemukan cara membangun proyek saya.

Saya bisa mulai membangun untuk cabang; tetapi, seperti yang saya harapkan, itu gagal. Saya kira saya harus memasukkan beberapa informasi meta seperti makefile ke dalam repositori. Apakah mungkin untuk membangun dan mengemas proyek Maven di Launchpad? Saya juga mencoba membangun file deb secara lokal menggunakan bzr dh-makedan debuild. bzr dh-makemembuat banyak file di ./debianfolder tetapi debuildgagal. Saya kira itu akan berhasil jika saya menentukan informasi meta yang tepat dalam proyek saya sehingga masalah yang sama seperti di Launchpad.

Saya tahu ini adalah pertanyaan yang cukup umum tapi saya pikir ada kekurangan tutorial yang tepat untuk mengemas .debfile bahkan jika Anda tidak memiliki kasus "eksotis" seperti saya.

Singkatnya:

File / informasi apa yang harus saya berikan dalam proyek saya sehingga dapat dibangun dan dikemas dengan benar?

Bantuan apa pun akan bagus :-)

André Stannek
sumber
1
afaict itu mungkin. Saya sedang mencari solusi, tetapi itu akan memakan waktu
RobotHumans
Begitu??? Bagaimana ini dilakukan. Ini membuatku gila.
i30817
@ i30817 - maaf, saya pergi untuk defcon, sekarang saya sedang mengerjakan game untuk ubuntu. saya akan mengisi jawabannya secepat tuntutan lain memungkinkan
RobotHumans
Saya pada titik di mana saya mencoba menelepon debuild untuk melihat apakah itu dapat membangun deb sebelum mengunggah ke ppa. Tidak ada keberuntungan: dh build --dengan javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / aturan biner dh biner --dengan javahelper dh_testroot dh_depdhdpdhdpddddddddddddddddhAMBERdhAMPERDAMBARdhdhddddddddddddddAM TIDAKdhdhdhdddddddddddADAMATddhddddddddddAM TIDAKdIdAKhATABATUdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh sudah ada? dh_install: cp-debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar / kode keluar yang dikembalikan 1 make: *** [binary] Error 2
i30817
@ aking1012 jangan terburu-buru. Saya belum punya waktu untuk proyek itu saat ini.
André Stannek

Jawaban:

2

Lihat di proyek bookjar saya: http://code.google.com/p/bookjar/source/browse/

secara khusus direktori debian (terutama file debian / package.sh) dan file build.xml (ant). Dalam file itu ada target baru 'unggah' yang mengunggah artefak yang dapat dibangun ke launchb buildpad.

Saya menggunakan ivy dan infrastruktur semut netbeans sehingga kemungkinan akan sedikit berbeda untuk Anda. Namun, satu hal yang pasti: Anda tidak dapat menggunakan ivy atau maven dari remote buildserver. Anda perlu mengunggah semua perpustakaan yang Anda gunakan, baik dalam bentuk kode atau botol. ivy: retrive mengunduh file ke current_dir / lib sehingga proyek saya di netbeans diatur untuk mencari pustaka di sana (nblibraries.properties adalah bagian dari infrastruktur netbeans untuk itu). Baca build.xml untuk detail (pada dasarnya file debian / rules memanggil target semut khusus untuk dibuat di server yang tidak mencoba untuk menyinkronkan file jar - karena mereka sudah disalin di sana).

Saya juga mengambil keuntungan dalam paket saya. Sh dari proyek saya berada di luring untuk membangun file changelog dari log hg, jadi ada masalah lain untuk dipecahkan jika Anda ingin tingkat otomatisme yang sama dan tidak menggunakan hg (dalam faktanya, saya pikir changelog saya membengkokkan aturan changelog debian dengan membuat setiap perubahan menjadi rilis 'minor').

i30817
sumber
Kedengarannya menjanjikan tetapi bisa memakan waktu beberapa hari sebelum saya punya waktu untuk memeriksanya.
André Stannek
Lupa: Dalam skema ini Anda bertanggung jawab atas unggahan ke rilis ppa alih-alih menautkan ppa ke repositori kode dengan file pengawas dan membuatnya dibangun secara berkala. Saya lebih suka seperti ini dan bahkan tidak mencoba melakukan yang lain, tapi itu mungkin. Ppa saya dibuat dengan ini ( setelah 13 upaya gagal! ). Juga berhati-hatilah karena changelog Anda harus dalam urutan OCD-murni agar dapat diterima oleh debuild - yang berarti bahwa log hg Anda juga harus demikian - saya harus menginstal ulang repo karena 'pengguna' yang tidak mengikuti pedoman
i30817
Setelah tiga bulan, ini jauh lebih baik daripada tidak sama sekali ;-)
André Stannek
Anda mungkin tidak ingin menggunakan trik hg log> changelog. Ini memiliki beberapa persyaratan yang meragukan seperti tidak memiliki tag hg kecuali yang numerik (rilis) atau harus memiliki semua komit mengikuti pedoman debian (dan karena hg tidak memungkinkan perubahan riwayat ... jika ini terjadi Anda juga menggunakan ekstensi yang rumit atau pasang kembali repositori ... dan dalam kasus apa pun klon remote selang). Itu memang memiliki keuntungan karena tidak harus memelihara changelog jika Anda mengelolanya.
i30817
Masih tidak dapat menemukan waktu untuk memeriksanya :-( Hanya ingin Anda tahu bahwa saya belum melupakan masalah ini.
André Stannek