2013-02-28 30 views
1

我當前的項目包括:Intellij maven戰爭項目模塊依賴關係,如何部署只需要什麼?

  • 父Maven POM文件,宣佈該項目的各個模塊和公共依賴每個功能
  • 一個子模塊(例如實體審計,出口...),其中一個是戰爭模塊依賴於其他幾個模塊。注意:依賴關係可能包含戰爭使用的資源(例如html模板,配置文件...),因此重新部署時也需要刷新戰爭環境。

我可以構建項目並使用tomcat部署戰爭爆炸版本。這場戰爭正確包含了其WEB-INF/lib文件夾中的每個依賴項。現在,如果我正在修改IntelliJ中的這些依賴項之一,我希望能夠僅將此模塊部署到爆炸戰爭中,我該怎麼做?目前我maven package的依賴關係,並重新部署在tomcat實例上...

+0

您可以嘗試在IDEA中創建一個新的分解工件,將您需要的所有東西打包到單個應用程序中,並將使用模塊編譯器輸出,以便您可以[在不重新部署的情況下熱切改變](http://www.jetbrains。 COM /想法/的WebHelp /更新-A-運行的Java-EE-application.html)。 – CrazyCoder 2013-02-28 10:46:05

+0

其實現在我有一個爆炸的神器,其中包含我的戰爭。但是,我怎麼能夠擴展依賴關係(在WEB-INF/lib中的JAR中),並使IntelliJ能夠在任何時候更改這些依賴項? – 2013-02-28 15:37:03

+0

如果這些jar是從您的模塊構建的,您可以配置模塊依賴項幷包含模塊編譯器輸出,這樣''.class'文件將被用來代替'.jar'。我不認爲你可以熱開罐子。 – CrazyCoder 2013-02-28 15:56:44

回答

0

看來,你正在嘗試做的是某種熱部署。你有幾種解決方案,這是沒有直接關係的IntelliJ但到Java應用程序一般:

    在調試模式
  • 時,JVM可以讓你hotswap classes只有當你改變的方法體
  • ,如果你想支持類/方法/字段添加/刪除等,你應該看看JRebel,同時也支持重裝很多框架結構的

外的開箱熱交換進行是相當有限的,所以我affraid沒有爲您的問題提供滿意的解決方案,如果您不打算購買/使用專用工具熱部署。

+0

IntelliJ成功地熱切換。只有當我想更新其中一個依賴項(打包在一個JAR中)時,它纔不再有用。 – 2013-02-28 15:38:30

+0

我也有多模塊maven項目,當我在位於依賴項中的Java類中進行修改時,當我在IntelliJ中使用我的項目(不使用maven)時,hotswapping按預期工作。但是,如果你想重新加載,讓我們說靜態內容位於依賴項(xml文件,圖像,JS等),那麼默認情況下是不可能的。但JRebel允許這樣做。我不確定這是你在找什麼。 – 2013-02-28 15:44:11

相關問題