2013-04-29 134 views
18

我有一個相當複雜的Java EE項目,可以從Maven很好地構建。將其導入到IDEA後,我將前端WAR和後端EAR的工作部署設置爲本地Weblogic 12c服務器。該項目還有幾個「通用」工件打包成罐子,並由前端和後端工件使用。爲了部署,我使用了展開的工件來節省打包/拆包的一些時間,一切正常,直到這一點。Intellij IDEA中的Java EE部署

在開發過程中,我編輯了一些Java源代碼,並嘗試將更新後的工件重新部署到正在運行的Weblogic。我按Shift + F10,選擇重新部署工件,我看到IDEA構建項目,項目在服務器上重新部署,並且更多時候,我沒有看到任何最近的變化。即使我選擇顯式重建項目,然後嘗試在之後重新部署工件,也無法在服務器上看到任何更改。在部署的構件中出現的唯一安全方式是從調用package目標的命令行調用maven,然後從IDEA重新部署。 (沒有安裝JRebel,正在IDE或Weblogic中使用,我想保持這種狀態)。

這是IDEA的預期行爲嗎?這可能是特定於我們的項目或全球的東西嗎? IDEA是否應該能夠發現哪些項目需要重建和重新打包,然後將EAR/WAR工件正確地重新部署到服務器上?它是否需要我的幫助來實現這一目標?

+0

您正在更改的部件是否標記爲SNAPSHOT版本?你的耳朵/戰爭如何進入這些圖書館?它是使用模塊標籤還是僅僅依賴於它像一個正常的依賴?我需要這些細節才能夠回答。 – 2013-04-29 21:18:33

+0

根項目和子項目均使用SNAPSHOT版本。 WAR和EAR模塊中的所有依賴項都作爲普通依賴項包含在內,不使用EJB模塊依賴項。 – 2013-04-30 06:10:59

回答

1

什麼是您的運行/調試配置?檢查一下,如果不是這樣的話。

在快捷菜單

,編輯配置>運行/調試配置窗口:

  • 服務器選項卡:

    • '更新' 行動:重新啓動服務器
    • 推出之前:設定「運行maven clean'和'運行maven install'
  • Deplowment tab

    • 插入你的耳朵在這裏。
+0

恐怕你錯過了我的問題。目標是1)更新部署而不重新啓動服務器,2)在IDEA中完全實現這一點,並且不需要明確調用maven。 – 2013-05-10 20:11:04

0

Evenif你的最終目標是做通過的IntelliJ構建和部署選項完成整個建造過程中,我會先嚐試以下方法: 如果你的項目設置不當在maven中,你應該能夠將你的maven pom.xml加載到你的IntelliJ中。所有通過mvn命令行執行的maven構建命令和部署設置都將顯示在IntelliJ的Maven面板中,結構非常漂亮。

如果確實如此,那麼很明顯,通過IntelliJ構建構建的庫中的一個庫未正確部署到正確的位置。您需要縮小您製作的單一更改對瓶子,耳朵或戰爭中的哪一個產生影響,然後檢查文件的日期是否在要部署的位置更新。

總而言之,我的謙卑取捨雖然是爲您的J2EE項目使用maven或gradle intelliJ面板。當你實現完成通過IntelliJ想法完成項目的定義目標時。此外,無論您添加到您的maven的插件都顯示在您的想法的maven/gradle面板中。這是一個相當直接的方法,您可以像IntelliJ.com一樣在IntelliJ中實現強大而靈活的部署和構建工具。

+0

問題顯然不是處理外部依賴關係,而是處理其他子項目的依賴關係。建議使用maven與我所表達的目標完全相反,即能夠使用我的IDE來完成所有這些。當然,我在這個項目中使用maven,並在我的CI服務器等廣泛使用它,但這是一個完全不同的故事。 – 2013-07-30 11:16:27