2013-04-29 132 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