2013-04-29 23 views
18

Mam dość złożony projekt Java EE, który można zbudować dobrze z Maven. Po zaimportowaniu go do IDEA, skonfigurowałem działające wdrożenie WAR frontendu i backend EAR na lokalny serwer Weblogic 12c. Projekt ma również kilka "wspólnych" artefaktów zapakowanych w słoiki i używanych zarówno przez artefakty frontendu, jak i backendu. Do rozmieszczenia użyłem eksplodowanych artefaktów, aby zaoszczędzić trochę czasu na pakowaniu/rozpakowywaniu, wszystko działa dobrze do tego momentu.Wdrożenie Java EE w Intellij IDEA

Podczas programowania edytuję niektóre źródła Java i próbuję ponownie wdrożyć zaktualizowane artefakty do działającego Weblogic. Naciskam Shift + F10, wybieram artefakty Redeploy, widzę IDEA, buduję projekt, projekt przenosi się na serwer, a częściej nie widzę żadnej z ostatnich zmian. Nawet jeśli wybiorę projekt Przebuduj jawnie, a następnie spróbuj ponownie wdrożyć artefakty po, nie będzie widać żadnych zmian na serwerze. Jedynym bezpiecznym sposobem wprowadzenia zmian we wdrożonych artefaktach jest wywołanie maven z wiersza poleceń wywołującego cel package, a następnie ponowne wdrożenie z IDEA. (Nie jest zainstalowany JRebel, jest używany w IDE lub na Weblogic i chciałbym pozostać w ten sposób).

Czy to oczekiwane zachowanie od IDEA? Czy to może być coś konkretnego dla naszego projektu, czy coś globalnego? Czy IDEA powinna być w stanie odkryć, które projekty wymagają przebudowania i przepakowania, a następnie ponownie prawidłowo rozmieścić artefakty EAR/WAR na serwerze? Czy potrzebuję pomocy ze strony, która osiągnie ten cel?

+0

Czy części, które zmieniasz, są oznaczone jako wersje SNAPSHOT? W jaki sposób twoje ucho/wojna ma dostęp do tych bibliotek? Czy używa tagu modułu, czy zależy od niego jak normalna zależność? Potrzebuję tych informacji, aby móc odpowiedzieć. –

+0

Zarówno projekt główny, jak i podprojekty używają wersji SNAPSHOT. Wszystkie zależności w modułach WAR i EAR są uwzględniane jako normalne zależności, nie są używane zależności modułu EJB. –

Odpowiedz

1

Jakie są Twoje konfiguracje uruchamiania/debugowania? Sprawdź to, jeśli jeszcze nie, nie.

w szybkim menu, edytować konfiguracje> Uruchom/debug okno konfiguracji:

  • zakładka Serwer:

    • On 'zmiana' action: serwer restartu
    • przed startem: set " uruchom maven clean 'i' run maven install '
  • Zakładka wyprowadzenia

    • wstawia tutaj twoje ucho.
+0

Obawiam się, że brakuje ci punktu z moim pytaniem. Celem jest: 1) aktualizacja wdrożeń bez restartowania serwera, 2) osiągnięcie tego całkowicie w ramach IDEA bez jawnego wywoływania programu. –

1

nie pewny to specyficzna odpowiedź na Twoje pytanie, ale co mogę zaproponować wam jest, aby spróbować skonfigurować WebLogic Maven plugin

następnie można wykonać instalację z linii poleceń/lub pomysł z Maven wsparcie.

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

Obawiam się, że mój komentarz do drugiej odpowiedzi brzmi - "Celem jest ... osiągnięcie tego całkowicie w IDEA i bez wyraźnego wywoływania maven". –

0

evenif twój ostateczny cel jest zrobić cały zbudowany proces wykonaną przez IntelliJ opcji budowania i wdrażania będę najpierw spróbować następujących sposobów: Jeśli projekt został prawidłowo skonfigurowany w mavenie powinieneś być w stanie załadować ci maven pom.xml w tobie IntelliJ. Wszystkie komendy kompilacji i ustawienia wdrażania, które robiłeś przy użyciu linii poleceń mvn, pojawią się w twoim mavenowym panelu IntelliJ w ładnej, trójstopniowej strukturze.

Jeśli to się uda, to jedna z bibliotek utworzonych za pomocą kompilacji IntelliJ nie zostanie właściwie rozmieszczona we właściwej lokalizacji. Musisz zawęzić wybór jednego ze słoików, ucha lub wojny, dokonując pojedynczej zmiany, a następnie sprawdzić, czy data pliku jest aktualizowana w miejscu, w którym ma zostać wdrożona, czy też nie.

Podsumowując, moją skromną sugestią jest użycie paneli lub stopni intelliJ do projektów J2EE. Kiedy osiągniesz określony cel, jakim jest całkowite zbudowanie twojego projektu za pomocą idei IntelliJ. Również jakikolwiek plugin, który dodasz do swojego mavena, pojawia się w panelu idei maven/gradle. Jest to podejście dość proste i można uzyskać potężne i elastyczne narzędzia do wdrażania i kompilacji w systemie IntelliJ, tak jak chciał.

+0

Problem najwyraźniej nie dotyczy obsługi zewnętrznych zależności, ale raczej zależności innych podprojektów. Sugerowanie użycia maven jest zupełnie sprzeczne z moim wyrażonym celem, aby móc to wszystko zrobić z moim IDE. Oczywiście używam programu maven do tego projektu i używam go w dużym stopniu na moim serwerze CI itp., Ale to zupełnie inna historia. –