Jak utworzyć PPA dla projektu Maven?

8

Chciałem spróbować stworzyć własny PPA. Mój projekt to projekt Java zbudowany z maven. Oto co już zrobiłem:

  • Utworzono PPA.
  • Skonfiguruj nowy projekt na Launchpad.
  • Dodano gałąź, która importuje mój projekt z repozytorium SVN.
  • Stworzyłem przepis dla tego oddziału, który publikuje kompilacje na moim PPA.

Tu utknąłem.

Czytałem tutoriale i dużo googlowałem; ale nie byłem w stanie dowiedzieć się, jak zbudować mój projekt.

Mogę rozpocząć kompilację dla gałęzi; ale, jak się spodziewałem, zawodzi. Chyba muszę umieścić w repozytorium niektóre meta informacje, takie jak makefile. Czy w ogóle można budować i pakować projekty Maven na Launchpad? Próbowałem także zbudować plik .deb lokalnie, używając bzr dh-makei debuild. bzr dh-makeutworzył wiele plików w ./debianfolderze, ale debuildnie powiodło się. Wydaje mi się, że zadziałałoby, gdybym określił właściwe meta informacje w moim projekcie, więc jest to ten sam problem, co w Launchpad.

Wiem, że to dość ogólne pytanie, ale myślę, że brakuje odpowiednich samouczków dotyczących pakowania .debplików, nawet jeśli nie masz takiej „egzotycznej” sprawy jak ja.

Podsumowując:

Jakie pliki / informacje muszę podać w swoim projekcie, aby można je było poprawnie zbudować i spakować?

Każda pomoc byłaby świetna :-)

André Stannek
źródło
1
twierdzę, że jest to możliwe. szukam rozwiązania, ale zajmie to trochę czasu
RobotHumans
Więc??? Jak to jest zrobione. Doprowadza mnie to do szału.
i30817,
@ i30817 - przepraszam, nie było mnie na defcon, teraz pracuję nad grą dla Ubuntu. odpowiem tak szybko, jak pozwalają na to inne wymagania
RobotHumans
Jestem w punkcie, w którym próbuję wywołać debuild, aby sprawdzić, czy jest w stanie zbudować deb przed przesłaniem do ppa. Brak szczęścia: dh build - with javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / rules binary dh binary --with javahelper dh_testroot dh_prep dh_installdirs dj__instalacja plik dh_jp: dj_instalacja_plik_dd_jp_dj_instalacja_dj_jj_jp: dj_instalacja_katalog_dt_jr_jp_jp_jp_jp_jp_jp_jjjjjjjjjjjjjjjjjjjjjjju dh_install: cp -a debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar / zwrócił kod wyjścia 1 make: *** [binarny] Błąd 2
i30817
@ aking1012 nie spiesz się. W tej chwili nie mam czasu na ten projekt.
André Stannek

Odpowiedzi:

2

Zajrzyj do mojego projektu bookjar: http://code.google.com/p/bookjar/source/browse/

w szczególności katalog debian (szczególnie plik debian / package.sh) i plik build.xml (ant). W tym pliku znajduje się nowy docelowy „upload”, który przesyła artefakt do zbudowania do buildbota startera.

Używam bluszczu i infrastruktury mrówek sieciowych, więc prawdopodobnie będzie nieco inaczej. Jedno jest jednak pewne: nie możesz używać bluszczu lub maven ze zdalnego serwera. Musisz przesłać wszystkie używane biblioteki, w formie kodu lub słoików. ivy: retrive pobiera pliki do katalogu bieżący_katalog / lib, więc mój projekt w netbeans jest skonfigurowany do wyszukiwania tam swoich bibliotek (nblibraries.properties jest w tym celu częścią infrastruktury netbeans). Przeczytaj plik build.xml, aby uzyskać szczegółowe informacje (w zasadzie pliki debian / rules wywołują specjalny cel mrówki w celu zbudowania na serwerze, który nie próbuje symlinkować plików jar - ponieważ są już tam skopiowane).

Korzystam również z mojego pakietu. Sh mojego projektu jest w mercurial, aby zbudować plik dziennika zmian z dziennika hg, więc są inne problemy do rozwiązania, jeśli chcesz tego samego stopnia automatyzmu i nie używasz hg (w Faktycznie myślę, że mój dziennik zmian nagina zasady dzienników zmian Debiana, ponieważ każda zmiana ma być „niewielką” wersją).

i30817
źródło
Brzmi obiecująco, ale może zająć kilka dni, zanim będę miał czas, aby się temu przyjrzeć.
André Stannek
Zapomniałem: w tym schemacie jesteś odpowiedzialny za przesyłanie do wydań ppa zamiast łączenia ppa z repozytorium kodu za pomocą pliku watchdog i okresowego kompilowania. Wolę to w ten sposób i nawet nie próbowałem zrobić tego drugiego, ale prawdopodobnie jest to możliwe. Mój ppa zbudował z tego ( po 13 nieudanych próbach! ). Bądź też ostrożny, ponieważ Twój dziennik zmian musi być w nieskazitelnej kolejności OCD, aby mógł zostać zaakceptowany przez debuild - co oznacza, że ​​twój log hg również musi być taki - musiałem ponownie uruchomić repo z powodu „użytkownika”, który nie postępował zgodnie z wytyczne
i30817,
Po trzech miesiącach jest znacznie lepiej niż nic ;-)
André Stannek
Prawdopodobnie nie chcesz używać sztuczki hg log> dziennik zmian. Ma pewne wątpliwe wymagania, takie jak brak znacznika hg oprócz liczbowych (wydania) lub zmuszanie wszystkich osób zatwierdzających do przestrzegania wytycznych Debiana (a ponieważ hg nie pozwala na zmianę historii ... jeśli tak się stanie, albo użyjesz skomplikowanego rozszerzenia lub ponownie uruchom repozytorium ... a w każdym razie zdalne klony węża). Ma tę zaletę, że nie musi utrzymywać dziennika zmian, jeśli nim zarządzasz.
i30817
Nadal nie mogłem znaleźć czasu, aby się temu przyjrzeć :-( Chciałem tylko, żebyś wiedział, że nie zapomniałem tego problemu.
André Stannek