2010-09-28 6 views

risposta

8

Per:

  • più facile la distribuzione,
  • rende problema classpath andare via,
  • possono essere confezionati anche nella presentazione MS PowerPoint come icona cliccabile, probabilmente OpenOffice anche in grado di gestirlo.

Contro:

  • confezionamento difficile - a volte si colpisce un caso d'angolo come ad esempio: come pacchetto estensioni native,
  • richiede passaggio di generazione in più,
  • genera vasi più grandi,
  • può violare il contratto di licenza della biblioteca,
  • uccide la nozione di riutilizzo della biblioteca,
  • rende gli aggiornamenti e
  • debug (a causa del caricatore di percorsi di classe extra) più difficile.

Quindi, in generale, è davvero un ottimo modo per la prototipazione rapida, ma può entrare in un modo se utilizzato in un progetto più grande.

1

Distribuzione FTW! È molto più semplice per l'utente arrotolato a uno.

5

Un motivo legittimo che ho visto sul posto di lavoro è dovuto al fatto che un fornitore fornisce i file di aggiornamento rapido che devono precedere la versione originale nel classpath.
Tuttavia, questa applicazione viene avviata tramite java webstart (jnlp) e dalla versione 6 di java, l'ordine delle dipendenze del file jar non è più garantito.
Pertanto, l'unico modo per garantire che i file di classe duplicati siano nella sequenza corretta consiste nel reimballarli in un jar uber, mantenendo gli ultimi file di classe corretti e scartando i duplicati più vecchi.

+1

+1 per caso d'uso molto interessante – Rekin

4

Le licenze di ridistribuzione applicabili alle dipendenze sono uno dei motivi principali contro la costruzione di un vaso "uber". Quando si crea un vaso "uber", si verifica la distribuzione di qualsiasi dipendenza, tramite la distribuzione del barattolo "uber". E nelle regioni, dove le leggi sui casi non coprono adeguatamente questo scenario, si potrebbe aprirsi alla responsabilità.

Inoltre, alcune dipendenze commercialmente ottenute potrebbero proibire il riconfezionamento delle dipendenze da, in particolare se la distribuzione originale non viene conservata.

PS: questo non è un parere legale. Chiunque stia leggendo questo e in base a ciò per intraprendere decisioni commerciali, dovrebbe consultare un avvocato.

1

Per:

  • Accorpamento delle biblioteche e codice nativo
  • Garantire la corretta ordinazione di esecuzione degli elementi di classpath
  • Rimuovere necessità di installatori

Contro:

  • Nuovo il classloader di primo livello potrebbe int problemi roduce non si vedono durante il normale ciclo di sviluppo
  • Legalità di librerie ri-confezionamento in termini di licenza diversi

In generale, se si tratta di una piccola applicazione utility, io attorcigliato in un unico vaso. Per le applicazioni più grandi (che probabilmente richiederanno comunque un programma di installazione), o se è una libreria che altri useranno, non mi preoccuperò. Sarà solo un altro anello nella catena di cose che possono rompersi.

Problemi correlati