Come creare un PPA per un progetto Maven?


8

Volevo provare a creare il mio PPA. Il progetto che ho è un progetto Java costruito con Maven. Questo è quello che ho già fatto finora:

  • Creato un PPA.
  • Imposta un nuovo progetto su Launchpad.
  • Aggiunto un ramo che sta importando il mio progetto da un repository SVN.
  • Ho creato una ricetta per quel ramo che pubblica le build sul mio PPA.

Questo è dove sono bloccato.

Ho letto i tutorial e ho cercato su Google molto; ma non sono riuscito a scoprire come costruire il mio progetto.

Posso iniziare una build per il ramo; ma, come mi aspettavo, fallisce. Immagino di dover inserire alcune meta informazioni come un makefile nel repository. È persino possibile creare e impacchettare progetti Maven su Launchpad? Ho anche provato a creare un file .deb localmente usando bzr dh-makee debuild. bzr dh-makeha creato molti file nella ./debiancartella ma debuildnon è riuscito. Immagino che avrebbe funzionato se avessi specificato le giuste meta informazioni nel mio progetto, quindi è lo stesso problema di Launchpad.

So che questa è una domanda piuttosto generica, ma penso che manchino tutorial adeguati per impacchettare i .debfile anche se non hai un caso "esotico" come me.

Riassumendo:

Quali file / informazioni devo fornire nel mio progetto in modo che possa essere compilato e impacchettato correttamente?

Qualsiasi aiuto sarebbe grande :-)


1
afaict è possibile. sto cercando una soluzione, ma ci vorrà del tempo
RobotHumans,

Così??? Com'è fatto. Questo mi sta facendo impazzire.
i30817,

@ i30817 - scusa, ero fuori per Defcon, ora sto lavorando a un gioco per Ubuntu.
inserirò

Sono al punto in cui sto provando a chiamare debuild per vedere se è in grado di creare il deb prima di caricare su un ppa. Nessuna fortuna: dh build - con javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / rules binary dh binary - con javahelper dh_testroot dh_prep dh_installdirs dh_dc/data_data/data/data/data/data/data/data/data/data/data/data/data/data/data/data/data/data/data/della_della/della_installata dh_install: cp -a debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar / restituito codice di uscita 1 make: *** [binario] Errore 2
i30817

@ aking1012 nessuna fretta. Non ho tempo per quel progetto neanche al momento.
André Stannek,

Risposte:


2

Cerca nel mio progetto bookjar: http://code.google.com/p/bookjar/source/browse/

in particolare la directory debian (in particolare il file debian / package.sh) e il file build.xml (ant). In quel file c'è un nuovo "upload" di destinazione che carica un artefatto costruibile sul buildbot del launchpad.

Sto usando l'edera e l'infrastruttura delle formiche dei netbeans, quindi è probabile che sia leggermente diverso per te. Tuttavia, una cosa è certa: non puoi usare edera o maven dal server di build remoto. Devi caricare tutte le librerie che usi, sotto forma di codice o vasetti. ivy: retrive scarica i file in current_dir / lib in modo che il mio progetto in netbeans sia configurato per cercare lì le sue librerie (nblibraries.properties fa parte dell'infrastruttura netbeans per quello). Leggi build.xml per i dettagli (fondamentalmente i file debian / rules chiamano un target formica speciale da compilare nel server che non tenta di collegare in modo simbolico i file jar - perché sono già stati copiati lì).

Sto anche approfittando del mio pacchetto.sh del mio progetto in fase mercuriale per creare un file log delle modifiche dal registro hg, quindi ci sono altri problemi da risolvere se si desidera lo stesso grado di automatismo e non usare hg (in infatti, penso che il mio log delle modifiche stia piegando le regole dei log delle modifiche debian facendo in modo che ogni modifica sia una versione "minore").


Sembra promettente, ma potrebbero volerci alcuni giorni prima che abbia il tempo di esaminarlo.
André Stannek,

Dimenticato: in questo schema sei responsabile dei caricamenti delle versioni di ppa invece di collegare la ppa a un repository di codice con un file watchdog e farlo compilare periodicamente. Preferisco così e non ho nemmeno provato a fare l'altro, ma probabilmente è possibile. Il mio ppa ha costruito con questo ( dopo 13 tentativi falliti! ). Fai anche attenzione perché il tuo log delle modifiche deve trovarsi in un ordine incontaminato OCD per essere accettato da debuild - il che significa che anche il tuo registro hg deve essere così - ho dovuto reiniziare il repository a causa di un "utente" che non ha seguito il linee guida
i30817,

Dopo tre mesi è molto meglio di niente ;-)
André Stannek,

Probabilmente non vuoi usare il trucco hg log> changelog. Ha alcuni requisiti dubbi come non avere alcun tag hg tranne quelli numerici (rilasci) o dover avere tutti i commit commit seguendo le linee guida debian (e poiché hg non consente di cambiare la cronologia ... se ciò accade, usi un'estensione complicata o reinizializzare il repository ... e in ogni caso clonare i cloni remoti). Ha il vantaggio di non dover conservare il log delle modifiche se lo gestisci.
i30817,

Non riesco ancora a trovare il tempo per esaminarlo :-( Volevo solo farti sapere che non ho dimenticato questo problema.
André Stannek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.