【问题标题】:Java EE deployment in Intellij IDEAIntellij IDEA 中的 Java EE 部署
【发布时间】:2013-04-23 16:38:10
【问题描述】:

我有一个相当复杂的 Java EE 项目,可以从 Maven 构建。将其导入 IDEA 后,我已将前端 WAR 和后端 EAR 部署到本地 Weblogic 12c 服务器。该项目还有几个“通用”工件打包为 jar,供前端和后端工件使用。对于部署,我使用分解的工件来节省一些打包/解包时间,直到那时一切正常。

在开发过程中,我编辑了一些 Java 源代码并尝试将更新的工件重新部署到正在运行的 Weblogic。我按下 Shift+F10,选择 Redeploy artifacts,我看到 IDEA 正在构建项目,项目在服务器上重新部署,而且我经常看不到任何最近的更改。即使我明确选择重建项目然后尝试重新部署工件,服务器上也看不到任何更改。使我的更改出现在已部署的工件中的唯一安全方法是从命令行调用 maven,调用 package 目标,然后从 IDEA 重新部署。 (没有安装 JRebel,在 IDE 或 Weblogic 上都在使用,我希望保持这种状态)。

这是 IDEA 的预期行为吗?这可能是我们项目特有的东西还是全球性的东西? IDEA 是否应该能够发现哪些项目需要重新构建和重新打包,然后将 EAR/WAR 工件正确地重新部署到服务器?它是否需要我方面的任何帮助才能实现该目标?

【问题讨论】:

  • 您要更改的部分是否标记为 SNAPSHOT 版本?您的耳朵/战争如何访问这些库?它是使用模块标签还是像普通依赖一样依赖它?我需要这些细节才能回答。
  • 根项目和子项目都使用 SNAPSHOT 版本。 WAR 和 EAR 模块中的所有依赖项都作为正常依赖项包含在内,不使用 EJB 模块依赖项。

标签: java jakarta-ee deployment intellij-idea


【解决方案1】:

即使您的最终目标是通过 IntelliJ 构建和部署选项完成整个构建过程,我仍将首先尝试以下操作: 如果您的项目在 maven 中正确设置,您应该能够在 IntelliJ 中加载 maven pom.xml。您通过 mvn 命令行执行的所有 maven 构建命令和部署设置都将以漂亮的三结构显示在 IntelliJ 的 maven 面板中。

如果这可行,那么显然通过您的 IntelliJ 构建构建的库之一没有正确部署到正确的位置。您需要缩小哪个罐子、耳朵或战争必须受到您所做的单个更改的影响,然后检查文件的日期是否在要部署的位置更新。

最后,我的建议是为您的 J2EE 项目使用 maven 或 gradle intelliJ 面板。当您实现完全通过 IntelliJ 理念构建项目的既定目标时。此外,您添加到 maven 的任何插件都会显示在您想法的 maven/gradle 面板中。这是一种相当直接的方法,您可以根据需要在 IntelliJ 中实现强大而灵活的部署和构建工具。

【讨论】:

  • 问题似乎不在于处理外部依赖项,而是处理其他子项目的依赖项。建议使用 maven 与我表达的目标完全相反,即能够使用我的 IDE 完成所有这些工作。当然,我在这个项目中使用 maven,并在我的 CI 服务器等上广泛使用它,但那是完全不同的故事。
【解决方案2】:

不确定这个具体回答您的问题,但我可以建议您尝试配置 weblogic maven插件

然后您可以从命令行/或带有 maven 支持的 IDEA 执行部署。

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

【讨论】:

  • 恐怕我对另一个答案的评论是——“目标是......在 IDEA 中完全实现这一目标,而无需明确调用 maven。”
【解决方案3】:

您的运行/调试配置是什么?检查这个,如果还没有的话。

在快捷菜单中,编辑配置 > 运行/调试配置窗口:

  • 服务器选项卡:

    • 在“更新”操作中:重新启动服务器
    • 启动前:设置“run maven clean”和“run maven install”
  • 部署标签

    • 在此处插入您的耳朵。

【讨论】:

  • 恐怕你错过了我的问题的重点。目标是 1) 在不重新启动服务器的情况下更新部署,2) 在 IDEA 中完全实现这一点,并且无需显式调用 maven。
猜你喜欢
  • 2017-07-12
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多