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-make
i debuild
. bzr dh-make
utworzył wiele plików w ./debian
folderze, ale debuild
nie 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 .deb
plikó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 :-)
Odpowiedzi:
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ą).
źródło