2015-01-07 17 views
6

L'ultimo paio di giorni trascorro molto tempo a scavare nella finestra mobile. Sono davvero impressionato dalla possibilità di avere un ambiente nello sviluppo che potrebbe essere lo stesso della produzione!Impostazione ambiente di sviluppo Java con finestra mobile

Al momento voglio iniziare in piccolo e iniziare a migliorare il processo di sviluppo. Stiamo sviluppando applicazioni Java distribuite su tomcat. Gli sviluppatori utilizzano IDE come Eclipse e IntelliJ.

Durante lo sviluppo si configura il proprio ambiente tomcat all'interno dell'IDE in modo da poter distribuire e eseguire il debug automatico del codice. Pertanto la directory base di tomcat deve essere disponibile per l'installazione.

Attualmente ho un'immagine debian docker con tomcat installato su/opt/tomcat.

Speravo ora di poter collegare il contenuto della directory container/opt/tomcat a una directory all'interno del mio host. Purtroppo questa funzione non sembra esistere. Con l'opzione -v puoi montare solo una directory host all'interno del contenitore e non viceversa.

Attualmente l'unica soluzione che vedo sarebbe montare la directory webapps del contenitore e rilasciare il mio file di guerra qui, che è dal mio punto di vista piuttosto improduttivo.

È necessario avviare/riavviare il tomcat manualmente, è possibile solo il debug remoto, non si dispone dei registri nella console IDE.

Quindi, qualcuno ha qualche idea su come ottimizzare il flusso di lavoro di sviluppo dello sviluppo di Java Webapp usando la finestra mobile?

+2

Questo ancora non sembra ha una vera e propria soluzione in vista. Ho capito che la finestra mobile è fantastica per isolare gli ambienti e tutto, ma vorrei davvero poter usare un debugger IDE nativo, non il debugger remoto quando si sviluppa su un container mobile locale. Non voglio sedermi lì e ridistribuire la mia app ogni volta che apporto una modifica a un jsp oa qualche classe java, è inefficiente. – openscope

+2

Sono completamente con te. Voglio configurare il mio ambiente di runtime all'interno del mio IDE e anche ottenere i log sulla mia console senza la necessità di confezionare manualmente il software. – daniel

+0

In base alla mia esperienza, il modo più semplice per eseguire un'impostazione di docker + tomcat consiste nell'utilizzare un tomcat incorporato. Quindi, invece di eseguire un tomcat e distribuire un file war, si crea un jar remoto contenente il tomcat e si esegue invece. Il vantaggio principale è: esegui il debug/esegui la stessa configurazione in fase di sviluppo e produzione ed è estremamente facile creare un'immagine docker. Io uso il boot a molla per il materiale standard, ma questo è opzionale. È anche implementabile con solo Maven. Saresti interessato a un simile setup? – Jan

risposta

1

Potrebbe essere necessario eseguire Eclipse e Tomcat nello stesso contenitore, tuttavia proverei sicuramente a farli eseguire prima in due contenitori separati. Forse inizia con questo base image e prova a collegarlo a un'immagine di Tomcat utilizzando un volume condiviso.

+1

hey, installare l'IDE all'interno dello stesso contenitore non è un'opzione reale perché voglio riutilizzare il contenitore anche in produzione (in futuro). Inoltre, non voglio creare un contenitore per l'IDE perché lo sviluppatore dovrebbe utilizzare qualsiasi IDE che desidera con qualsiasi sistema operativo che desidera .. – daniel

+1

Ecco perché ho consigliato l'approccio con 2 container. In questo modo puoi collegare il tuo contenitore Tomcat al tuo contenitore IDE solo in fase di sviluppo. –

+0

Ma non voglio avere l'IDE all'interno di un contenitore – daniel

-1

Se sto capendo correttamente il problema, perché non usare l'opzione -v per montare il file di guerra. Questo ha funzionato bene per me utilizzando wildfly.

Fondamentalmente, io uso Maven per costruire la guerra e mappare target/myapp.war a /opt/wildfly/myapp.war. Quindi, ogni volta che apporto modifiche all'applicazione, eseguo semplicemente il pacchetto mvn clean e il contenitore dell'app, osservando che la guerra è cambiata, redeploys.

Ora, questo sta sfruttando lo scanner di distribuzione di wildfly ma potrebbe funzionare anche per tomcat. In caso contrario, potresti lanciare tomcat con una guerra esplosa e quindi montare la cartella di build, target/myapp, nella cartella webapps su tomcat.

+1

In generale, è possibile utilizzare tomcat per eseguire nuovamente la distribuzione automatica, ma nella vita reale ciò crea più problemi che risolverlo .. spesso comporta perdite di memoria o comportamenti strani della webapp ... – daniel

2

Ho visto un blog che parlava di doclipser (Eclipse + Docker).

all'interno del blog, in primo luogo nella parte inferiore del post, è citato i seguenti strumenti:

Spero che questo aiuti :)

Problemi correlati