2009-09-08 5 views
5

Ho una situazione in cui è presente un piccolo frammento di codice Java con un numero elevato di jar da cui dipende. Tuttavia, le dipendenze all'interno di questi vasi sono molto superficiali. Nella maggior parte dei casi dipende solo da un jar per una singola interfaccia.Java Ridurre a icona Dipendenze

Invece di distribuire tutti i barattoli con l'applicazione, vorrei semplicemente distribuire i file di classe specifici all'interno dei jar effettivamente utilizzati. La ragione di questo è di risparmiare spazio (questo codice vivrà in un'applet).

Qualcuno conosce uno strumento o un metodo per farlo automaticamente? Supponendo che tutte le dipendenze siano statiche, questo sembra del tutto possibile. Qualche idea?

risposta

5

Classdepandjar eliminerà una base di codice per le classi essenziali. È usato nel mondo Jini per offrire giare di dimensioni ottimali, ma non c'è nulla di specifico su Jini.

Disponibile come attività Ant.

3

Per quanto ne so, questo è Maven solo, ma è un buon inizio

Maven Shade Plugin: Questo plugin fornisce la possibilità di confezionare il manufatto in un uber-jar, comprese le sue dipendenze e per ombreggiare - vale a dire rinominare - i pacchetti di alcune delle dipendenze.

2

ProGuard fa restringimento/ottimizzazione e anche offuscamento. Penso che puoi configurarlo per fare solo uno o l'altro.