2012-03-20 11 views
11

Kunagi è una semplice applicazione Web Java per la quale stiamo già creando un pacchetto binario .deb per i nostri utenti. Questo pacchetto dipende da tomcat6 e inserisce il file .war in /var/lib/tomcat6/webapps. Funziona alla grande su Debian e Ubuntu.Come creare un pacchetto Debian per la mia applicazione Web Java?

Ora voglio creare un vero pacchetto sorgente che possa essere integrato in Debian. Purtroppo non riesco a trovare alcun tutorial. Ci sono molte informazioni frazionate su strumenti come CDBS, DH7 o javahelper e i loro comandi. Ma quale dovrei usare?

Ho anche qualche domande concettuali:

  1. Di solito, le applicazioni web sono installate copiando il webapp nella webapps directory del web container. Sarebbe giusto quindi rendere il mio pacchetto dipendente da tomcat6 e installare la mia webapp direttamente su /var/lib/tomcat6/webapps? O la mia webapp dovrebbe essere installata da qualche altra parte, fornendo una configurazione Tomcat separata ed eseguita con il proprio utente, come fanno gli altri servizi?

  2. La mia webapp utilizza librerie (JAR) da altri progetti. Di solito questi sono posti nella sottodirectory WEB-INF/lib della directory webapp. Poiché includere le librerie in un pacchetto non è consentito in Debian, sarebbe corretto aggiungere questi progetti come dipendenze nel mio pacchetto e creare collegamenti simbolici nella mia directory WEB-INF/lib? O come potrei risolvere questo problema?

  3. La mia webapp deve scrivere file (dati dell'applicazione). Poiché Tomcat è in esecuzione come utente www-data su Debian, l'unica directory in cui la mia app Web può scrivere è /var/lib/tomcat6/webapps. È il posto giusto dove inserire i miei dati? O il mio pacchetto dovrebbe creare qualcosa come /var/lib/my-webapp-name/ e concedere autorizzazioni di scrittura per l'utente www-data?

+0

Qual è il modo migliore per informare gli sviluppatori di debian su questa domanda qui? – Witek

+0

hai un pacchetto deb per mettere il war su tomcat. Potresti condividerlo? Stiamo cercando di fare la stessa cosa. –

+0

Deve davvero essere un pacchetto .deb? Puoi creare una finestra mobile conteriner (https://www.docker.com/) con tomcat e la tua webapp. I contenitori funzionano come macchine virtuali, la finestra mobile consente di apportare facilmente modifiche e condividerle. Il tuo cliente deve solo installare la finestra mobile dal repository Debian ed eseguire un comando per scaricare ed eseguire il contenitore. Posso darti un esempio se questo può essere considerato come una soluzione. Il tuo contenitore può avere già incorporato tomcat, puoi semplicemente modificare questa immagine del contenitore pubblico (https://hub.docker.com/_/tomcat/). – Damian

risposta

1

Beh ... Se si deve creare un pacchetto Debian che v'è una grande jdeb biblioteca che funziona sia per ant e maven. La caratteristica migliore è che non richiede alcun wrapper dpkg, quindi la tua build non sarà dipendente dal sistema operativo.