【发布时间】:2013-11-05 17:49:42
【问题描述】:
我有一个关于在 Eclipse 中使用 maven 在 Weblogic 上运行 Java EE 应用程序的基本问题。
我使用 OEPE(Oracle Enterprise pack for Eclipse),它带有一些插件,例如 m2e 和 wtp。据我所知,这个插件读取 pom 文件并基于它们构建 jar、war 和 ear 文件。
我现在做的是这样的:
我选中自动构建选项并让这些插件创建我的 EAR 文件,然后右键单击 Eclipse 中的 weblogic 服务器实例并使用添加/删除选项将其添加到服务器,最后启动应用程序服务器。这样,当我在我的类中更改代码时,它们将被应用程序服务器选中并且热交换工作。
另一种构建 EAR 文件的方法是使用 m2e 插件:右键单击父 pom 文件并选择 maven install 然后启动应用程序服务器并使用 wls:deploy 来部署 EAR 文件。 (这次我没有从 Eclipse 中将 ear 文件添加到应用程序服务器,当我在 IDE 中右键单击我的 weblogic 实例时,eclipse 也不知道那个 EAR 文件)。
据我所知,我只能将那些使用 wtp 插件构建的工件添加到服务器,而不是使用 m2e 插件的 maven 命令构建的工件。 wtp 和所有这些插件(实际上只是运行 mvn -install 的 m2e 除外)的问题在于它们不能完美地工作。有时他们没有正确构建工件,有时 jar 文件已经过时并且它们没有得到更新。此外,当您在另一个 maven 项目中使用一个项目的 jar 文件时,他们会在您进行更改之前卡在 jar 文件中,而使用 m2e 时,它们会完美地构建。
现在真正的问题来了:
哪种方式是正确的热部署方式?
我错过了什么吗?使用 m2e 插件构建 ear 文件并使用 wls:deploy 进行部署是否足够?如果是这样,热插拔将如何自行发生,或者我应该每次都使用 wls:redeploy 吗?如果m2e足够了,那么我假设我应该放弃wtp插件(它不知道pom文件的所有插件,我有时应该在eclipse的生命周期管理xml文件中将它们标记为忽略)。
很抱歉这个问题太长了,但我希望我能把案子说清楚并得到一些帮助!
【问题讨论】:
标签: eclipse maven deployment weblogic12c hotswap