Domanda

Sono un grande fan di Capistrano ma devo sviluppare uno script di distribuzione automatizzato per un negozio solo Java. Ho esaminato Ant e Maven e non sembrano essere ben orientati verso l'amministrazione remota come Capistrano - sembrano molto più concentrati sulla semplice creazione e il confezionamento di applicazioni. Esiste uno strumento migliore là fuori?

È stato utile?

Soluzione

Non penso che ci sia un'applicazione simile a Capistrano per Java Web Applications, ma ciò non dovrebbe impedirti di usarla (o alternative come Fabric) per distribuire le tue applicazioni. Come hai già detto, Ant è più un sostituto di GNU Make mentre Maven è primaria un'applicazione di buildout / gestione delle dipendenze.

Poiché le applicazioni Web Java sono grazie al contenitore .war meno dipendente dalle librerie esterne, è possibile (a seconda del server delle applicazioni) rendere la distribuzione di un'applicazione semplice come l'esecuzione di una semplice richiesta PUT HTTP.

Ma se hai bisogno di ulteriori passaggi, Fabric ha funzionato molto bene per me finora e presumo che Capistrano offra anche operazioni generali di shell-command, put e get. Quindi non cercherei troppo a lungo un'alternativa se quello che hai già funziona :-)

Altri suggerimenti

Penso che controltier (vedi: http://controltier.org ) è quello che stai cercando. Sebbene controltier non debba essere utilizzato esclusivamente per le distribuzioni Java.

Vedi questo estratto dai documenti (vedi: documentazione del livello di controllo ):

  

ControlTier è uguale a Capistrano, Fabric o Func?

     

Nei loro concetti più fondamentali,   ControlTier, Capistrano, Fabric e   Func sono strumenti simili. Ci piacerebbe   sicuramente chiamare Capistrano, Fabric,   e Func Basic Command Dispatching   Frameworks.

     

Tuttavia, ControlTier, di   design, va ben oltre ciò che questi   altri strumenti forniscono. L'automazione   biblioteche e strumenti basati sul web che   ControlTier fornisce sono progettati per   ti permette di costruire sistemi di automazione completi   pronto per l'uso da parte dell'azienda o   team operativi su larga scala.   Ci sono anche funzionalità come   gestione degli errori e registrazione centralizzata   che non sono nell'ambito di altri   strumenti di invio comandi.

     

Inoltre, Capistrano è uno strumento basato su Ruby   che si concentra principalmente sui bisogni   della community di Ruby on Rails.   ControlTier, mentre è scritto in Java,   non richiede di conoscere Java   usalo. In effetti, puoi usare qualunque cosa   linguaggi di scripting che sei   a proprio agio con (compreso il rubino).   ControlTier tenta di essere come lingua   e piattaforma (Linux, Unix, Windows,   ecc.) il più neutro possibile.

Nel mio lavoro utilizziamo Capistrano esclusivamente per distribuire tutte le nostre applicazioni Java. È sicuramente possibile.

Uso una ricetta capistrano per creare dspace (una webapp java, che a sua volta usa maven) dalla fonte: Installazione di dspace utilizzando capistrano

Capistrano potrebbe distribuire tutte le applicazioni web di base. Le implementazioni per la lingua diversa sono quasi le stesse:

  1. aggiorna codice
  2. invia il codice al server di produzione
  3. prepara i file di configurazione per questa distribuzione
  4. riavvia il server. (sottile, nginx, tomcat)

nella mia azienda, utilizziamo Capistrano per distribuire applicazioni java, Vuejs, php, ruby, python.

La cosa interessante è che l'idea di Capistrano di un repository presuppone che tu abbia a che fare con un SCM (Source Control Manager). La struttura sul server e il relativo versioning dell'applicazione funzionano sull'origine dell'applicazione. Questo ha senso per un linguaggio interpretato.

In un linguaggio compilato come Java, tuttavia, il controllo delle versioni e la ramificazione vengono prima della distribuzione e, al momento della compilazione e creazione dell'applicazione, il sistema di controllo del codice sorgente è già lasciato indietro e il risultato è un vaso con versione o tar contenente l'applicazione. In genere questo tarball (jar + config) è pubblicato in un repository di manufatti Maven come Nexus o Artifactory.

Sorprendentemente, questo repository di manufatti si associa perfettamente al repository Capistrano. Al posto di SCM, possiamo considerare questo tarball come SCM (la fonte da sottoporre a versione). Con questo in mente, ho implementato un plug-in Capistrano SCM per repository di manufatti Maven . È nuovo ma funziona abbastanza bene.

Unifica i nostri progetti Ruby e Java su un unico strumento e, soprattutto, porta la potenza del SSHKit di Capistrano e rastrella i nostri progetti Java.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top