I vasi che verranno utilizzati solo in un progetto verranno distribuiti sul server Nexus [chiuso]

0

Credo che il titolo dica tutto. C'è un dibattito nella nostra azienda, dovremmo implementare i vasi interni, che verranno utilizzati solo in uno specifico progetto, a Nexus o c'è una soluzione migliore? L'argomento per non averlo distribuito a Nexus è che non verrà riutilizzato, quindi non c'è motivo di averlo lì.

    
posta Mougli 29.10.2014 - 11:54
fonte

3 risposte

1

Il barattolo esiste. È là fuori. Cercare di ignorare questa realtà inserendolo in una directory lib come binario porta a problemi in futuro.

Ora, se hai Nexus, hai Maven. Questo barattolo è una dipendenza del progetto. Se stai mettendo il barattolo in un percorso e bypassando l'esperto, scoprirai che stai combattendo contro lo strumento stesso, il che porterà a problemi.

In particolare, il problema più grande che incontrerai è che il barattolo sarà difficile da aggiornare. Hai registrato in un file binario nell'albero dei sorgenti dell'applicazione. Ciò significa che se devi aggiornare il barattolo con un nuovo valore per qualcosa, devi costruire il barattolo, copiarlo nel posto giusto, controllare anche quello . Guai se trovi mai che hai bisogno di un'altra dipendenza per il vaso (che diventa quindi una dipendenza dall'applicazione).

Se il barattolo è 'usato solo in un punto', perché è anche una libreria separata? Perché invece non fa parte della struttura di classe di quella applicazione? Costruire il barattolo e quindi copiare il barattolo nel percorso lib dell'applicazione sembra un sacco di lavoro.

Invece, avere il vaso dispiegato in nexus significa che il barattolo fa anche parte della struttura di Maven. Ha le sue dipendenze. Ha la sua versione. Può essere fotografato con Snapshot. Ha i suoi plugin per costruire. In breve, quando lavori con lo strumento, la toolchain supporta e ti aiuta a semplificare. Quando si tenta di ignorare la toolchain, si ottengono impostazioni specifiche che diventano fragili e possibilmente più difficili da testare e distribuire in modo coerente.

Metti il barattolo in un esperto. Distribuisci il jar su nexus e fallo fare parte delle dipendenze. Renderà il controllo del codice sorgente più facile e sarà più facile.

    
risposta data 29.10.2014 - 20:58
fonte
3

Lo si riutilizza ogni volta che si compila un progetto specifico da una macchina installata in modo pulito (ad esempio una che non ha il jar nel suo repository .m2). Mantenerlo in Nexus si assicura che sia disponibile quando ne hai bisogno.

    
risposta data 29.10.2014 - 12:27
fonte
0

A meno che tu non abbia poteri di cui non siamo a conoscenza, tutto ciò che sai veramente è che non stai progettando sul riutilizzo di quel vaso. L'intero punto dello sviluppo orientato agli oggetti è il riutilizzo. Anche se non hai un caso in cui un'altra applicazione potrebbe utilizzare quel jar e non riesci a trovarne uno in questo momento, non significa che non arriverà mai un momento in cui quel codice non sarebbe utile in un'altra applicazione . Se è utile in 1 app, potrebbe essere utile in un'altra, quindi vai avanti e distribuiscila su Nexus.

Tutto ciò che non dovrebbe mai essere usato al di fuori di un progetto specifico dovrebbe essere in quel progetto e non in un vaso separato. Il fatto che questo codice si trovi nel proprio file jar implica che si pensava che potesse essere utile a qualcos'altro, che dovrebbe rispondere alla domanda "da distribuire a Nexus o non distribuire a Nexus".

    
risposta data 29.10.2014 - 13:34
fonte

Leggi altre domande sui tag