2013-04-29 14 views
18

Ho un progetto Java EE piuttosto complesso che può essere realizzato correttamente da Maven. Dopo averlo importato in IDEA, ho impostato una distribuzione funzionante del frontend WAR e del backend EAR su un server Weblogic 12c locale. Il progetto ha anche diversi artefatti "comuni" confezionati come vasi e usati sia dagli artefatti frontend che backend. Per la distribuzione, ho usato gli artefatti esplosi per risparmiare un po 'di tempo sulla confezione/disimballaggio, tutto funziona fino a quel momento.Implementazione Java EE in Intellij IDEA

Durante lo sviluppo, modifico alcune sorgenti Java e provo a ridistribuire le risorse aggiornate al Weblogic in esecuzione. Premo Shift + F10, scegli Redeploy manufact, vedo IDEA che sta sviluppando il progetto, il redeploys del progetto sul server, e il più delle volte, non vedo nessuna delle modifiche recenti. Anche se scelgo Ricostruisci progetto in modo esplicito e poi provi a ridistribuire le risorse dopo, non è possibile visualizzare modifiche sul server. L'unico modo sicuro per far apparire le mie modifiche nelle risorse implementate è di invocare Maven dalla riga di comando chiamando l'obiettivo package e quindi ridistribuire da IDEA. (Nessun JRebel è installato, viene utilizzato nell'IDE o su Weblogic, e mi piacerebbe rimanere così).

È il comportamento previsto da IDEA? Potrebbe essere qualcosa di specifico per il nostro progetto o qualcosa di globale? IDEA dovrebbe essere in grado di scoprire quali progetti devono essere ricostruiti e riconfezionati e quindi ridistribuire correttamente le risorse EAR/WAR sul server? Ha bisogno di aiuto da parte mia per raggiungere questo obiettivo?

+0

sono le parti che stai cambiando contrassegnati come versioni offline? In che modo il tuo orecchio/guerra ha accesso a queste librerie? Usa il tag del modulo o semplicemente dipende da esso come una normale dipendenza? Ho bisogno di questi dettagli per poter rispondere. –

+0

Sia il progetto root che i progetti secondari utilizzano le versioni SNAPSHOT. Tutte le dipendenze nei moduli WAR ed EAR sono incluse come dipendenze normali, non vengono utilizzate dipendenze del modulo EJB. –

risposta

1

Quali sono le configurazioni di esecuzione/debug? Controlla questo, se non già non è così.

nel menu rapido, modificare le configurazioni> Esegui/debug configurazioni finestra:

  • scheda Server:

    • su 'Aggiorna' azione: riavviare il server
    • Prima del lancio: set ' run maven clean 'e' run maven install '
  • Scheda di svaso

    • inserisce l'orecchio qui.
+0

Ho paura che manchi il punto della mia domanda. L'obiettivo è di 1) aggiornare le distribuzioni senza riavviare il server, 2) raggiungere questo completamente all'interno di IDEA e senza invocare Maven in modo esplicito. –

1

no sicuro che questa risposta specifica alla tua domanda, ma quello che posso suggerire è di provare configurare weblogic Maven Plugin

allora è possibile eseguire la distribuzione da riga di comando/o da IDEA con Maven supporto.

  1. http://docs.oracle.com/cd/E21764_01/web.1111/e13702/maven_deployer.htm
  2. http://www.youtube.com/watch?v=hagaMr6UL6U
+0

Ho paura che il mio commento all'altra risposta sia: "L'obiettivo è ... raggiungere questo completamente all'interno di IDEA e senza invocare esplicitamente il maven". –

0

evenif il vostro obiettivo finale è quello di fare tutto il processo costruita fatto da IntelliJ opzioni di generazione e distribuzione io per prima provare la seguente: Se il progetto è stato impostato correttamente in Maven dovresti essere in grado di caricarti maven pom.xml dentro di te IntelliJ. Tutti i comandi di generazione di maven e le impostazioni di distribuzione che stavi facendo tramite la riga di comando di mvn verranno mostrati nel pannello di esperti di IntelliJ in una struttura a tre.

Se funziona allora è chiaro che una delle librerie che sono costruiti attraverso il vostro costruire IntelliJ sono non essere schierati correttamente nella posizione giusta. È necessario limitare quale dei vasi, dell'orecchio o della guerra deve essere influenzato da una singola modifica apportata e quindi verificare se la data del file viene aggiornata nel percorso in cui deve essere distribuita o meno.

Per concludere, la mia modesta sugestion è però di utilizzare sia Maven o pannelli IntelliJ Gradle per i vostri progetti J2EE. Come si raggiunge l'obiettivo definito di avere il progetto costruito completamente attraverso l'idea IntelliJ. Anche qualsiasi plugin che aggiungi al tuo Maven appare nel pannello di maven/gradle di you idea. È un approccio abbastanza semplice e consente di realizzare una distribuzione potente e flessibile e di creare strumenti all'interno di IntelliJ come richiesto.

+0

Il problema non riguarda la gestione delle dipendenze esterne, ma piuttosto delle dipendenze di altri sottoprogetti. Suggerire di usare Maven è del tutto contrario al mio obiettivo dichiarato di essere in grado di fare tutto ciò con il mio IDE. Ovviamente io uso Maven per questo progetto e lo uso estensivamente sul mio server CI ecc., Ma questa è una storia completamente diversa. –