Wie erstelle ich eine PPA für ein Maven-Projekt?

8

Ich wollte versuchen, mein eigenes PPA zu erstellen. Das Projekt, das ich habe, ist ein Java-Projekt, das mit Maven erstellt wurde. Das habe ich bisher schon gemacht:

  • Erstellt eine PPA.
  • Richten Sie ein neues Projekt auf dem Launchpad ein.
  • Es wurde ein Zweig hinzugefügt, der mein Projekt aus einem SVN-Repository importiert.
  • Erstellt ein Rezept für diesen Zweig, der die Builds auf meiner PPA veröffentlicht.

Hier stecke ich fest.

Ich habe die Tutorials gelesen und viel gegoogelt. Aber ich konnte nicht herausfinden, wie ich mein Projekt erstellen sollte.

Ich kann einen Build für den Zweig starten. aber wie ich erwartet hatte, schlägt es fehl. Ich muss wohl einige Metainformationen wie ein Makefile in das Repository stellen. Ist es überhaupt möglich, Maven-Projekte auf Launchpad zu erstellen und zu verpacken? Ich habe auch versucht, eine .deb-Datei lokal mit bzr dh-makeund zu erstellen debuild. bzr dh-makehat viele Dateien im ./debianOrdner erstellt, ist aber debuildfehlgeschlagen. Ich denke, dass es funktionieren würde, wenn ich die richtigen Metainformationen in meinem Projekt angeben würde, so dass es das gleiche Problem wie auf Launchpad ist.

Ich weiß, dass dies eine ziemlich allgemeine Frage ist, aber ich denke, es fehlt an geeigneten Tutorials zum Verpacken von .debDateien, selbst wenn Sie keinen "exotischen" Fall wie mich haben.

Etwas zusammenfassen:

Welche Dateien / Informationen muss ich in meinem Projekt bereitstellen, damit es ordnungsgemäß erstellt und verpackt werden kann?

Jede Hilfe wäre toll :-)

André Stannek
quelle
1
afaict ist es möglich. Ich suche nach einer Lösung, aber es wird einige Zeit
dauern
Damit??? Wie wird es gemacht. Das macht mich verrückt.
i30817
@ i30817 - Entschuldigung, ich war wegen defcon weg, jetzt arbeite ich an einem Spiel für Ubuntu. Ich werde die Antwort so schnell wie möglich
ausfüllen
Ich bin an dem Punkt, an dem ich versuche, debuild aufzurufen, um zu sehen, ob es in der Lage ist, das deb zu erstellen, bevor ich es auf einen ppa hochlade. Kein Glück: dh build --mit javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / regeln binär dh binär - mit javahelper dh_testroot dh_prep dh_installdirs dh_auto_install dh_install cj: dh_install: cp -a debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar / zurückgegebener Exit-Code 1 make: *** [binär] Fehler 2
i30817
@ aking1012 keine Eile. Ich habe im Moment auch keine Zeit für dieses Projekt.
André Stannek

Antworten:

2

Schauen Sie in meinem Bookjar-Projekt nach: http://code.google.com/p/bookjar/source/browse/

Insbesondere das Debian-Verzeichnis (insbesondere die Datei debian / package.sh) und die Datei build.xml (ant). In dieser Datei befindet sich ein neues Ziel "Upload", das ein baubares Artefakt auf den Launchpad-Buildbot hochlädt.

Ich benutze Ivy und die Netbeans Ant-Infrastruktur, daher ist es wahrscheinlich etwas anders für Sie. Eines ist jedoch sicher: Sie können keinen Efeu oder Maven vom Remote-Buildserver verwenden. Sie müssen alle von Ihnen verwendeten Bibliotheken entweder in Form von Code oder in Form von Gläsern hochladen. ivy: retrive lädt die Dateien in die Datei current_dir / lib herunter, damit mein Projekt in netbeans so eingerichtet wird, dass dort nach Bibliotheken gesucht wird (nblibraries.properties ist dafür Teil der netbeans-Infrastruktur). Lesen Sie die build.xml für Details (im Grunde genommen rufen die Debian- / Regeldateien ein spezielles Ant-Ziel auf, um den Server zu erstellen, der nicht versucht, die JAR-Dateien zu verknüpfen - da sie dort bereits kopiert sind).

Ich nutze auch in meinem package.sh den Vorteil, dass mein Projekt in mercurial ist, um eine Änderungsprotokolldatei aus dem hg-Protokoll zu erstellen. Es gibt also andere Probleme, die gelöst werden müssen, wenn Sie den gleichen Grad an Automatismus wünschen und hg (in Tatsächlich denke ich, dass mein Changelog die Regeln von Debian-Changelogs verbiegt, indem jede Änderung eine "geringfügige" Veröffentlichung ist.

i30817
quelle
Klingt vielversprechend, aber es kann einige Tage dauern, bis ich Zeit habe, mich damit zu befassen.
André Stannek
Vergessen: In diesem Schema sind Sie für die Uploads zu den ppa-Releases verantwortlich, anstatt den ppa mit einem Code-Repository mit einer Watchdog-Datei zu verknüpfen und regelmäßig erstellen zu lassen. Ich bevorzuge es so und habe nicht einmal versucht, das andere zu tun, aber es ist wahrscheinlich möglich. Mein ppa hat damit gebaut ( nach 13 fehlgeschlagenen Versuchen! ). Seien Sie auch vorsichtig, da Ihr Changelog in OCD-unberührter Reihenfolge sein muss, um von Debuild akzeptiert zu werden - was bedeutet, dass Ihr HG-Protokoll auch so sein muss -, musste ich das Repo wegen eines 'Benutzers', der dem nicht folgte, neu starten Richtlinien
i30817
Nach drei Monaten ist es viel besser als nichts ;-)
André Stannek
Sie möchten wahrscheinlich nicht den Trick hg log> changelog verwenden. Es gibt einige zweifelhafte Anforderungen, wie zum Beispiel, dass kein HG-Tag außer numerischen (Releases) vorhanden ist oder dass alle Commit-Commiter den Debian-Richtlinien folgen müssen (und da HG keine Änderung des Verlaufs zulässt ... verwenden Sie in diesem Fall entweder eine komplizierte Erweiterung oder repository neu starten ... und auf jeden Fall Remote-Klone abspritzen). Es hat den Vorteil, dass Sie das Änderungsprotokoll nicht verwalten müssen, wenn Sie es verwalten.
i30817
Ich konnte immer noch keine Zeit finden, mich damit zu beschäftigen :-( Ich wollte nur, dass Sie wissen, dass ich dieses Problem nicht vergessen habe.
André Stannek